2017-10-20 46 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);