我有listA
,listB
。 listA
是 的子集listB
。例如,删除 1 个元素并添加 2 个元素listB
。然后如果listA
包含从 listB 中删除的元素,则将其从 中删除listA
。另外,listA
应该添加新添加的元素。
目前我正在使用foreach{ if(list.contains) }
两次。一次添加,一次删除。这将是 O(2n),没关系。
但是有没有一种最好的方法来做到这一点,主要是使用 LINQ 中的 O(n)/任何其他方式?
更清楚地说:
实际上我有一个自定义类的列表。
我listA
在上述问题中形成的(使用其中一个领域)。ListB
只是我从网络服务获得的字符串列表。代码:
//First foreach loop which I was taking about.
foreach (string A in listA)
{
if (listB.Contains(A)
{
}
else
{
//getting items that are added to listB
}
}
//Second foreach loop which i was taking about.
foreach (string A in listB)
{
if (listA.Contains(A)
{
}
else
{
//getting items that are deleted from listB
}
}
然后我会List<custom class>
相应地更新它。我的主要问题是,除了使用两个foreach
循环之外,我还能做得更好吗?