我試圖將每個列表的每個值與另一個列表的每個值進行比較,然後刪除任何匹配的值,並且目前有此代碼。從一個列表中刪除相等值的最有效方法
foreach (item s in List1)
{
for (int i = 0; i < list2.count; i++)
{
if (list2.ElementAt(i)==s)
{
list2.Remove(list2.ElementAt(i));
continue;
}
}
}
必須有一個更快,或者至少是一個不太密集的方法來執行這樣的比較。需要更快的方法,因爲這可以用來比較每個超過1000個值的列表。任何幫助將大大降低
實際上,要求是從'list1'中存在的'list2'中刪除元素,不是嗎? –
As @ un-lucky指出有更好的方法來做你可能需要的東西......爲了讓你的代碼更快(而不是更好,因爲在.NEt中有現成的方法來做到這一點) - 使用字典來加快搜索速度。可能是http://stackoverflow.com/questions/5636438/difference-between-two-lists的重複。您可能需要閱讀[設置操作](https://msdn.microsoft.com/en-us/library/bb546153.aspx)以改善問題。 –
使用LINQ查詢.. – JamieD77