LINQ组中的条件怎么使用“:”条件
问题描述:
我有2个变量使用像条件在数据列表中分组 string FileNo =“”; string FileName =“”;LINQ组中的条件怎么使用“:”条件
由于FileNo和FileName可能为空 所以当我有一个数据列表如下所示: List DataList = new List();
我想确保FileNo在和文件名不是空白的话,我会
使用他们在组,我不知道如何将它们嵌入在LINQ语法。一些等看起来是这样的:
var TotalDuplicate = GridList.GroupBy(x,y => "".Equals(FileNo) : x.FileNo,
"".Equals(FileName) : y.FileName
.Count(x => x.Count() > 1);
答
尝试
List<string> x = new List<string>() { "", "pp", "jj", "kjj", "", "" };
foreach (string s in x.Select(xx => string.IsNullOrEmpty(xx) ? "Empty" : "Populated"))
{
Console.WriteLine(s);
}
输出:
空 填充的 填充的 填充的 空 空
我在Select语句中做了什么,您可以在其他linq语句(Where,Group等)中执行此操作
答
您试图以错误的方式解决错误的别名问题:而不是通过单串由两个部分组成$"{FileNo}:{FileName}"
,组上一对字符串通常LINQ方式:
var duplicates = GridList
.GroupBy(x => new { x.FileNo, x.FileName })
.Count(g => g.Count() > 1);
你只是想排除与空白'FileNo'和'FileName'项目? – DavidG
你为什么使用group? – arslanaybars
你在寻找*三元运算符*吗? '“”.Equals(x.FileNo)? “空白”:x.FileNo' –