[英]How to apply the else if condition into the LINQ query.?
我有一個主題“subjectList”的列表,我想根據兩個條件獲取值,例如如果 subjectValue,=null 然后 select subjectValue 否則如果主題是 isDefault=true 然后 select subjectDefaultCode。 我已經為這兩個條件編寫了一個單獨的 LINQ 查詢,但我沒有得到如何在單個查詢中應用這兩個條件? 看一看。
string subjectValueDropDown = string.Empty;
第一個條件。
subjectValueDropDown = string.Join(",", subjectList.Where(x => x.SubjectValue.= null).Select(k => k.SubjectValue);ToArray());
第二個條件。
subjectValueDropDown = string.Join(",", subjectList.Where(x => x.IsDefault == true).Select(k => k.subjectDefaultCode).ToArray());
可能性:
Subject1 SubjectValue=null , isDefault=false
Subject2 SubjectValue=Maths , isDefault=false
Subject3 SubjectValue=null , isDefault=true
Subject4 SubjectValue=null , isDefault=false
在這種情況或其他任何主題具有 SubjectValue.=null 的情況下,我不希望執行 isDefault 條件。
提前致謝。
更新: Output 應與以下查詢的操作相同:
subjectValueDropDown = string.Join(",", subjectList.Where(x => x.SubjectValue != null).Select(k => k.SubjectValue).ToArray());
if(subjectValueDropDown==""){
subjectValueDropDown = string.Join(",", subjectList.Where(x => x.IsDefault == true).Select(k => k.subjectDefaultCode).ToArray());
}
是否可以將兩個查詢合並到一個查詢中以獲得預期的 output。
試試這個,它在 Visual Studio 中測試過,值與更新中的值相同:
subjectValueDropDown = string.Join(",",
subjectList
.Where(x =>
(x.SubjectValue != null)
|| (x.SubjectValue == null && x.IsDefault)
).Select(k =>
k.SubjectValue != null? k.SubjectValue : k.SubjectDefaultCode
)
.OfType<string>()
.ToArray());
using System.Collections.Generic;
using System.Linq;
namespace Game
{
class Subject
{
public string SubjectValue { get; set; }
public bool IsDefault { get; set; }
public string subjectDefaultCode = "Defauult code.";
}
class Program
{
static void Main(string[] args)
{
var subjectList = new List<Subject>
{
new Subject
{
IsDefault = false,
},
new Subject
{
SubjectValue = "Maths",
IsDefault = false,
},
new Subject
{
IsDefault = false,
},
new Subject
{
IsDefault = false,
},
};
var ubjectValueDropDown = string.Join(",", subjectList.Where(x => x.SubjectValue is not null || x.IsDefault)
.Select(x =>
{
if (x.SubjectValue is not null)
return x.SubjectValue;
if (x.IsDefault)
return x.subjectDefaultCode;
return "";
}));
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.