我有IEnumerable<MyData>
哪些包含以下数据
Fruits | Name | Quantity |
__________________________
Mango | Jay | 10 |
__________________________
Apple | Jay | 16 |
__________________________
Grapes| Jay | 12 |
__________________________
Mango | Raj | 11 |
__________________________
Apple | Raj | 20 |
__________________________
Grapes| Raj | 3 |
__________________________
Mango | Vik | 20 |
__________________________
Apple | Vik | 15 |
__________________________
Run Code Online (Sandbox Code Playgroud)
我需要根据名称从Linq顶部选择两个数量
Jay (10+16+12) = 38
Raj (11+20+3) = 34
Vik (20+15) = 35
Run Code Online (Sandbox Code Playgroud)
Jay和Vik有两个数量之和,所以我需要这些记录
Fruits | Name | Quantity |
__________________________
Mango | Jay | 10 |
__________________________
Apple | Jay | 16 |
__________________________
Grapes| Jay | 12 |
__________________________
Mango | Vik | 20 |
__________________________
Apple | Vik | 15 |
__________________________
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 11
听起来像你可能想要的东西:
var query = from item in collection
group item by item.Name into g
orderby g.Sum(x => x.Quantity) descending
select g;
var topTwo = query.Take(2);
Run Code Online (Sandbox Code Playgroud)
这将采用前两组,因此您将其用作:
foreach (var group in topTwo)
{
Console.WriteLine("Name: {0}", group.Key);
foreach (var item in group)
{
Console.WriteLine(" {0}: {1}", item.Fruits, item.Quantity);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23928 次 |
最近记录: |