2017-10-20 47 views
1

我有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); 
+0

你只是想排除与空白'FileNo'和'FileName'项目? – DavidG

+0

你为什么使用group? – arslanaybars

+4

你在寻找*三元运算符*吗? '“”.Equals(x.FileNo)? “空白”:x.FileNo' –

回答

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等)中执行此操作

3

您试图以错误的方式解决错误的别名问题:而不是通过单串由两个部分组成$"{FileNo}:{FileName}",组上一对字符串通常LINQ方式:

var duplicates = GridList 
    .GroupBy(x => new { x.FileNo, x.FileName }) 
    .Count(g => g.Count() > 1);