有沒有辦法(使用LINQ
可能)我可以優化下面的代碼。此代碼所做的是通過比較變量mySecondCollection
中的項目來添加,刪除和更新變量myFirstCollection
中的項目。可以以某種方式使用更多的LINQ方法/查詢或其他LINQ運算符,以便myFirstCollection
變量儘可能快地進行比較和更新。還有哪些LINQ操作符/方法可用於優化基於C#集合的代碼?
要添加到我的要求,我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);
}
}
}
任何有助於重構/提高基於任何文章/鏈接上面的代碼是高度讚賞。
如果我清除myFirstCollection對象時,也會清除綁定了WPF網格,如果有在網格中的任何選擇 - 該選擇也將被擦除..我需要一些其他優化的方式..! – VS1