2012-04-01 23 views
0

linqコレクションはSearchResultオブジェクトで作成されています。linqでグループを使用して集約レコードを選択する

のSearchResultが含まれています。カテゴリと少なくとも1件の検索結果がある場合、私はすべての集計カテゴリLINQを使用して、新しいコレクションに選択したいID(番号)、区分名(文字列)

は(つまり、 AはコレクションにカテゴリAを含む)。

可能であれば、アルファベット順に結果を並べ替えることができます。

例:

検索結果:

1、コンピューター

2、IT

3、財務

4、金融

5、ニュース

6、天気

7、IT

8、ファッション

結果の収集:(コンピュータ、ファッション、金融、IT、ニュース、天気)。ここで

は、私がこれまで持っているものです:

SearchResultsCollectionがIEnumerableをされ

var categs = SearchResultsCollection.GroupBy(f => GetCategory(f)) 
      .Select(GetCategory(f)).ToList(); 

答えて

2

ますこの場合GroupByことができますが、とにかくプリミティブプロパティに、突出しているので、それは必要はありません - グループ最初の

:、グループキーと順序を選択: Distinct()を使用して

var categs = SearchResultsCollection.GroupBy(f => f.categoryName) 
            .Select(g => g.Key) 
            .OrderBy(f => f) 
            .ToList(); 

または容易に

var categs = SearchResultsCollection.Select(f=> f.categoryName) 
            .Distinct() 
            .OrderBy(c => c) 
            .ToList(); 
関連する問題