有没有办法(LINQ
可能使用)我可以优化下面的代码。这段代码所做的是myFirstCollection
通过比较变量中的项目来添加、删除和更新变量中的项目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);
}
}
}
非常感谢根据任何文章/链接重构/改进上述代码的任何帮助。