1
LINQ Whereクエリと一致するかどうかに基づいて、リスト内のアイテムを変更しようとしています。LINQを使用してアイテムリストにコールバックを適用する
私は、このようにそれをやってみました:
class Collection<T> {
public List<T> Items { get; private set; }
public Collection<T> Modify(Func<T, bool> query, Func<T, T> callback) {
Items = Items.Where(query).Select(callback).ToList();
return this;
}
}
しかし、それが一致しない場合、このリストから項目を削除します。アイテムをスキップしてリストに残したいと思います。どうすればこれを達成できますか?
を使用して、2つの変数の代わりに、1。 Items = Items.Where(.....)があるので、元のデータが失われています。出力変数を別の名前にします。 – jdweng
それを元のアイテムにどうやって適用しますか? –
ケーキを食べて食べることはできません。一致したときに設定される別のプロパティを追加しない限り、古い値と新しい値を1つの変数に保持することはできません。 – jdweng