2

List<T>交差させたい2 つのオブジェクトがありますが、試行するとエラーが発生します。

// Make the Keys in the Dictionary<Load, double> _loads to form a List<Load>
List<Load> l1 = _loads.Keys.ToList();

// Get a list from my element.
List<Load> l2 = element.ListLoads;

// Intersect
List<Load> loads = (List<Load>)l1.Intersect<Load>(l2);
4

2 に答える 2

5

Intersect<T>を返すIEnumerable<T>ので、正しい方法は次のとおりです。

var loads = l1.Intersect(l2).ToList();

ToList<T>List<T>からを作成しIEnumerable<T>ます。

を呼び出すときに型引数を省略できることに注意してくださいIntersect<T>。コンパイラはそれを推論するのに十分スマートです。

于 2012-07-08T12:59:33.057 に答える
2

次の方法で実行できます。

List<Load> loads=new List<Load>(l1.Intersect(l2));

これは、Intersect が IEnumerable を返すためであり、これが IEnumerable から新しいリストを作成する正しい方法です。

于 2012-07-08T13:16:55.653 に答える