2

私の質問は、以前に尋ねられた 2 つの質問と同じです

LINQ TO DataSet: Multiple group by on a data table、この質問との唯一の違いは、メソッド構文でそれを行う必要があることです。

LINQ Group By Multiple fields -Syntax help - この質問との違いは、LINQ-to-DataSet を使用してこれを行う必要があることです。

顧客を国別にグループ化しようとしていますが、その結果 (予想) は次のようになります。

   COUNTRYCODE     CUSTOMERNAME
   USA             Microsoft   
   USA             IBM
   CAN             RIM
   CAN             Tim Horton
   GER             BMW

どうやってこれを行うのですか?ありがとうございました。

編集:

これが私が苦労している厄介なコードです。

   var query = orders.AsEnumerable()
                    .GroupBy(t => new {CountryCode= t.Field<string>("CountryCode"), 
                                       CustomerName = t.Field<string>("CustomerName"), 
                                    (key, group)=> new {Key1 = key.CountryCode, Key2=key.CustomerName})
                    .Select(t => new {t.Key1, t.Key2});
4

2 に答える 2

2
var uniqueCountryCustomer =
         tblCustomer.AsEnumerable()
        .GroupBy(row => new
        {
            Country = (string)row["COUNTRYCODE"],
            Customer = (string)row["CUSTOMERNAME"]
        });

完全を期すために、クエリ構文は次のとおりです。

var uniqueCountryCustomer = 
            from row in tblCustomer.AsEnumerable()
            group row by new{
                Country=(string)row["COUNTRYCODE"],
                Customer=(string)row["CUSTOMERNAME"]
            };

// display result
var summary = from cc in uniqueCountryCustomer
              select string.Format("Country:{0} Customer:{1} Count:{2}", 
              cc.Key.Country, 
              cc.Key.Customer, 
              cc.Count());
MessageBox.Show(string.Join(Environment.NewLine,summary));
于 2012-01-26T23:37:51.477 に答える
0

私のEDITのコードは機能しました:

 var query = orders.AsEnumerable()   
              .GroupBy(t => new {CountryCode= t.Field<string>("CountryCode"),
                                 CustomerName=t.Field<string>("CustomerName"),
                           (key, group)=> new {CountryCode = key.CountryCode,CustomerName=key.CustomerName})
.Select(t => new {t.CountryCode, t.CustomerName}); 
于 2012-01-26T23:57:35.710 に答える