全部,我想知道是否有更好的方法從兩個獨立的List<T>
s獲取匹配值的List<T>
。從匹配兩個分開的列表中獲取一個列表<T><T> s
如果我想找到字符串列表itemList<string>
(一個獨特的列表),其是在另一個列表bankList<string>
所有項目我會做到這一點目前的方式(也不同,因此返回的列表也不同 - 沒有重複)會
List<string> matchingList = new List<string>();
foreach (string s in itemList)
if (bankList.Contains(s))
matchingList.Add(s);
有沒有更好和/或更快的方法來做到這一點?
擴展:我很欣賞的問題已回答(這是趁着),但出於利益考慮,會得到否定的最佳方式(即,這些項目不bankList<string>
)是
List<string> interList = new List<string>();
interList = itemList.Intersect(bankList).ToList<string>();
matchingList = itemList.Except(interList).ToList<string>();
或在這種情況下會是回到
List<string> matchingList = new List<string>();
foreach (string s in itemList)
if (!bankList.Contains(s))
matchingList.Add(s);
我認爲,在這種情況下,有趣的可能是後者?
見我的編輯爲您的第二個問題。一般來說,你應該提出一個新問題,而不是編輯一個新的問題。一旦你接受了你的問題的答案,大多數人都不會注意。 – jason 2012-03-30 16:07:20