我返回後續的一些數據:LINQ的重複計數
Model { Guid Id }
和我的全部項目,int totalCount
的一個int。
我想從數據重複計數被返回第1類, 而擁有項目總減去1類計爲2類。
我有以下的LINQ to獲取第1類的計數不同,但是如何將第2類的計數添加到IEnumerable中?
var result = data.
GroupBy(x => x.Id).
Select(x => new { Category = "1", Value = x.Select(v => v.Id).Distinct().Count() }).
GroupBy(x => x.Category).
Select(x => new Item { Category = x.Key, Value = x.Sum(y => y.Value) });
和Item類有2個成員:類別爲字符串,值爲小數。
謝謝!
編輯: 所以我有後續數據IEnumerable<Model> data
,它包含以下數據:
{ Id: 1 }
{ Id: 2 }
{ Id: 2 }
{ Id: 1 }
{ Id: 3 }
{ Id: 4 }
和TOTALCOUNT = 10
我想獲得的重複計數從數據中獲得的Id(在這種情況下爲4)作爲類別1,而totalCount - 不同的項目爲類別2.因此,對於結果,我將有IEnumerable
的Item
具有以下內容:
{ Category: "1", Value: 4 }, { Category: "2", Value: 6 }
現在我的linq語句只返回{ Category: "1", Value: 4 }
,我不知道下一步該怎麼做。
我不太明白這個問題。一些簡單的示例數據可能會有幫助在您的代碼中,Count()方法將始終返回1.您處於按「.Id」分組的項目的上下文中。因此,每組只有一個不同的.Id。 我懷疑你的問題將被解決,如果你按x.Category ==「1」分組。這會給你一個「假」組和一個「真」組,你可以分別區分一個。 – Tormod
謝謝!我只是用一些示例數據編輯了原始問題。希望能幫助到你。 – user1628865