0

使用我的以下代码:

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

谢谢

4

1 回答 1

3

按“s”分组,而不是“sample”。然后您可以根据需要选择数据:

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)
    };
于 2009-06-11T00:05:49.840 回答