私はLinqでオブジェクトのサブリストを作成するのに苦労しています。私は今、何をしたいかサブリストを選択フィルタリング条件リスト<int> Linqを使用
var assignedObject = new List<int>();
foreach (var obj in myObjects) {
if (IsAssigned(obj)) {
assignedObject.add(obj.Id);
}
}
は、LINQの.Where(Func<T,bool> predicate)
でmyObjects
から割り当てられたオブジェクトを削除しています。
myObjects = myObject.Where(item => item.Id != assignedObj.All()).ToList();
item.Id != assignedObj.All()
が問題の部分です。
Linqで実現可能であれば、私に教えてください。
それ以外の場合は、ループを実装します。
var remainingObjects = new List<MyClass>();
foreach(var obj in myObjects) {
if (!(assignedObjects.IndexOf(obj.Id) > -1)) {
remainingObjects.Add(obj);
}
}
PS:ケースであなたはどこか別の場所から取得List<MyClass> myObjects = GetMyObjects(params);
を迷っています。
を試してみて、あなただけの ''項目=> assignedObj.Contains(item.id)をお探しですか?現時点ではそれほど明確ではありません。あなたが[mcve]を投稿することができれば、あなたを助けやすくなります。 –
@JonSkeetなぜ私はそれを考えなかったのですか? – iiminov