LINQ
以下のコードを最適化できる (おそらく使用する) 方法はありますか。myFirstCollection
このコードが行うことは、 variable 内のアイテムを比較することによって、 variable 内のアイテムを追加、削除、および更新することですmySecondCollection
。どういうわけか、より多くの LINQ メソッド/クエリまたは他の LINQ 演算子を使用して、myFirstCollection
変数ができるだけ早く比較および更新されるようにすることはできますか?
私の要件に追加するために、追加、削除、および更新がデータバインディングですぐにグリッドに反映されるように、私のObservableCollection
変数myfirstCollection
がにバインドされています。WPF Grid
private void UpdateFirstCollection(ObservableCollection<MyDTO> myFirstCollection, IEnumerable<MyDTO> mySecondCollection)
{
//Code to add items to First Collection, how to optimize this block?
foreach (var item in mySecondCollection.ToList())
{
if (!myFirstCollection.Contains(item))
{
myFirstCollection.Add(item);
}
else
{
//Code to update items from First Collection, how to optimize this block?
var itemToUpdate = myFirstCollection.FirstOrDefault(dto => dto.ID == item.ID);
if (itemToUpdate != null)
{
itemToUpdate = item;
}
}
}
//Code to remove items from First Collection, how to optimize this block?
var copy = new ObservableCollection<myDTO>(myFirstCollection);
foreach (var item in copy.ToList())
{
if (!mySecondCollection.Contains(item))
{
myFirstCollection.Remove(item);
}
}
}
記事/リンクに基づいて上記のコードをリファクタリング/改善するための助けをいただければ幸いです。