2016-08-27 6 views
1

私は、次のスキーマを持つ要求テーブルを持っている:私はREQ_DATEの順にREQ_SOURCEあたりの要求を反復処理する必要があるLINQメソッドの構文を使用して、属性の順にグループ化して処理する方法は?

要求

REQ_SOURCE(int), REQ_DATE (datetime), REQ_NAME (string) 

。 Ⅰ要求の最も早い要求元を最初に評価する必要があります。次のコードはそれを行いますか?

var requestSourceOrdered = requests 
    .GroupBy(x => x.REQ_SOURCE) 
    .OrderBy(x => x.Min(y => y.REQ_DATE)) 
    .Select(x => x.Key) 
    .ToList(); 

foreach(var requestSource in requestSourceOrdered) 
{ 
    //Process requestSource here 
} 

答えて

3

あなたのコードは、要求元ごとに最も早いリクエストのみを返すようです。あなたがしたいことがすべてのリクエストを反復することであれば、コードスニペットが役立つはずです。

var requestSourceOrdered = requests 
     .GroupBy(x => x.REQ_SOURCE) 
     .SelectMany(x => x.OrderBy(y => y.REQ_DATE)) 
     .ToList() 

希望します。