0
我想從表中選擇行。我需要在一列上執行GroupBy,然後在不同的列上執行Distinct()。我想返回結果中的整個行。如何使用Lambda返回不同行的分組數組
假設一個數據庫表具有以下結構和數據:
GroupId = 1, To = "A", From = "B", Flag = True
GroupId = 1, To = "A", From = "C", Flag = True
GroupId = 1, To = "B", From = "A", Flag = True
GroupId = 1, To = "B", From = "C", Flag = False
GroupId = 1, To = "C", From = "A", Flag = True
GroupId = 1, To = "C", From = "B", Flag = True
GroupId = 2, To = "A", From = "B", Flag = True
GroupId = 2, To = "B", From = "C", Flag = True
GroupId = 2, To = "C", From = "A", Flag = True
GroupId = 2, To = "D", From = "C", Flag = True
GroupId = 2, To = "D", From = "A", Flag = False
GroupId = 2, To = "A", From = "B", Flag = True
下面的代碼行返回組的陣列與每個含To
字符串數組:
var test = db.LookupMap
.Where(u => u.Flag == true)
.GroupBy(u => u.GroupId, (key, group) => group.Select(m => m.To).Distinct())
.ToArray();
我可以通過將m.To
更改爲m
獲取一組對象:
.GroupBy(u => u.GroupId, (key, group) => group.Select(m => m).Distinct())
但是這會打破「收件人」列上的Distinct()。
如何返回對象數組(整行)而不是數組字符串?
注意:要列應爲唯一的GroupId不同
您的解決方案效果很好!我很難打破這一行代碼。它有效,但我不明白它是如何做到的。謝謝。 – rwkiii 2014-12-03 07:39:57
我添加了一些更多的描述。希望能幫助到你。 – MarcinJuraszek 2014-12-03 07:43:07