使用以下代码:
using System.Collections.Generic;
using System.Linq;
namespace SampleGrouping
{
internal class Program
{
private static void Main(string[] args)
{
var sample = new List<Samples>
{
new Samples{ParameterID = 11,MaterialID = 855,ProductID = 955,Quantity = 100},
new Samples{ParameterID = 11,MaterialID = 855,ProductID = 955,Quantity = 200},
new Samples{ParameterID = 12,MaterialID = 856,ProductID = 956,Quantity = 100},
new Samples{ParameterID = 12,MaterialID = 856,ProductID = 956,Quantity = 400}
};
// Result: Groupby ParameterID, MaterialID, ProductID
// ParameterID = 11,MaterialID = 855,ProductID = 955,Quantity = 300
// ParameterID = 12,MaterialID = 856,ProductID = 956,Quantity = 500
var enumerable = from s in sample
group sample by new
{
s.ParameterID,
s.MaterialID,
s.ProductID,
};
}
}
internal class Samples
{
public int MaterialID { get; set; }
public int ParameterID { get; set; }
public int ProductID { get; set; }
public int Quantity { get; set; }
}
}
如何实现结果:列为
ParameterID = 11,MaterialID = 855,ProductID = 955,Quantity = 300
ParameterID = 12,MaterialID = 856,ProductID = 956,Quantity = 500
由于
答案 0 :(得分:3)
按“s”分组,而不是“样本”。然后,您可以根据需要选择数据:
var enumerable =
from s in sample
group s by new
{
s.ParameterID,
s.MaterialID,
s.ProductID,
} into GroupedSample
select new
{
GroupedSample.Key.ParameterID,
GroupedSample.Key.MaterialID,
GroupedSample.Key.ProductID,
TotalQuantity = GroupedSample.Sum(gs => gs.Quantity)
};