0

LINQ のリストについて簡単な質問があります。私はそれについて検索しましたが、それらしいものは見つかりませんでした。どちらが優れているかはわかりません(たとえば、パフォーマンスの点で)。

list1 = list.Where(x => x.property).ToList();

今、反対のリストが欲しい

list2 = list.Where(x=> !x.property).ToList();

私はこれを使用しましたが、よくわかりません。

list2 = list.Except(list1).ToList();

また、グループを取得して両方のリストを同時に取得することも考えました。2 つのリストを持つリストです。最初のリストの繰り返しは重いです。

あなたはそれについてどう思いますか?どうもありがとう。

4

1 に答える 1

2

正直なところ、私はただ一緒に行きます:

var listEqual = new List<YourType>();
var listNotEqual = new List<YourType>();

foreach(YourType item in list)
    if (item.Property)
        listEqual.Add(item)
    else
        listNotEqual.Add(item);

あなたが使うことができます

var lookup = list.ToLookup(x => x.Property);
var list1 = lookup[true].ToList();
var list2 = lookup[false].ToList();

(厳密にリストが必要ない場合は、を削除するToListこともできます)-入力のすべてがまたはの場合を処理するためにもう少しコードが必要ですが、これはシーケンスを1回だけ繰り返しtrueますfalse

于 2013-02-25T15:13:05.243 に答える