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」でグループ化します。次に、必要に応じてデータを選択できます。

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 に答える