170

私は次のようなデータ構造を持っています

public DespatchGroup(DateTime despatchDate, List<Products> products);

そして、私はやろうとしています...

var list = new List<DespatchGroup>();

foreach (var group in dc.GetDespatchedProducts().GroupBy(i => i.DespatchDate))
{
    // group.Values is not correct... how do I write this?
    list.Add(new DespatchGroup(group.Key, group.Values);
}

IGroupingグループ内のデータレコードに実際にアクセスする方法がわからないので、明らかに理解していません!

4

4 に答える 4

197

グループの実装IEnumerable<T>-一般的なケースでforeachは、group. この場合、必要なのでList<T>

list.Add(new DespatchGroup(group.Key, group.ToList());
于 2011-01-26T12:23:14.693 に答える
41

それ自体値のシーケンスであるValuesため、プロパティなどはありません。この場合に必要なのは、そのシーケンスをリストに変換することだけです。IGrouping<T>IEnumerable<T>

list.Add(new DespatchGroup(group.Key, group.ToList());
于 2011-01-26T12:23:40.653 に答える
33

For any selected group,you could call

var selectedGroupValues=selectedGroup.SelectMany(x=>x);
于 2015-11-30T15:52:30.577 に答える
23

関連するヒント - 他の回答で述べたように、使用できる特定のインデックスにアクセスする必要がある場合、グループ化は IEnumerable であるためgroup.ElementAt(i)です。

これはおそらく多くの人にとって明らかですが、うまくいけば、いくつかの助けになります!

于 2012-10-22T19:34:02.200 に答える