모두, 일치하는 값이 List<T>
인 두 가지 방법 (List<T>
)을 얻는 더 좋은 방법이 있는지 알고 싶습니다.목록 얻기 <T> 두 개의 분리 목록에서 일치 <T>
다른리스트에있는 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);
하는 것? 이 O(n^2)
을 수 없기 때문에, 또한
var matchingList = itemList.Intersect(bankList).ToList();
, 그것은 빨라집니다 :
이 두 번째 질문에 대한 내 편집을 참조하십시오 말할 것이다. 일반적으로 새로운 질문을 편집하는 대신 새로운 질문을해야합니다. 질문에 대한 대답을 수락하면 대부분의 사람들은주의를 기울이지 않을 것입니다. – jason