0

2 つのコレクションLinqの結合を生成するために使用できることはわかっています。IEnumerable

次のようになります。

IEnumerable<MyClass> first;
IEnumerable<MyClass> second; 
IEnumerable<MyClass> union = first.Union(second);

ここで、クラスのコレクションがIEnumerableあり、それらすべての結合を計算したいとします。それを行うエレガントな(そしておそらく効率的な)方法について何か提案はありますか?

私はこのようなことを試しましたが、それは正しい構文ではありません:

IEnumerable<IEnumerable<MyClass>> collection;
IEnumerable<MyClass> result = Enumerable.Empty<MyClass>().Union( foreach (MyClass c in collection ){ yield return c;});
4

2 に答える 2

3
collection.SelectMany(i => i).Distinct(); //will get your result.
于 2013-06-10T14:34:40.417 に答える
3

AggregateO(n²)を使用する方法とは対照的に、O(n) での次のアプローチ。

collection.SelectMany(i => i).Distinct()
于 2013-06-10T14:36:42.603 に答える