C#에서 List
두 개의 List
요소 순서가 중요하지 않은 경우 비교하기 전에 두 목록을 모두 정렬하는 것이 간단한 접근 방식입니다. 이는 다음 코드를 사용하여 달성할 수 있습니다:
<code class="language-csharp">Enumerable.SequenceEqual(list1.OrderBy(t => t), list2.OrderBy(t => t))</code>
또는 성능을 향상시키고 IEquatable
<code class="language-csharp">public static bool ScrambledEquals<T>(IEnumerable<T> list1, IEnumerable<T> list2) { var cnt = new Dictionary<T, int>(); foreach (T s in list1) { if (cnt.ContainsKey(s)) { cnt[s]++; } else { cnt.Add(s, 1); } } foreach (T s in list2) { if (cnt.ContainsKey(s)) { cnt[s]--; } else { return false; } } return cnt.Values.All(c => c == 0); }</code>
키로 사용된 데이터 유형이 기본적으로 같음 비교를 지원하지 않는 경우 같음 비교기를 매개 변수로 사용하는 위 함수의 다른 버전을 사용할 수 있습니다.
<code class="language-csharp">public static bool ScrambledEquals<T>(IEnumerable<T> list1, IEnumerable<T> list2, IEqualityComparer<T> comparer) { var cnt = new Dictionary<T, int>(comparer); //其余代码保持不变 }</code>
위 내용은 C#에서 콘텐츠 평등을 위해 두 목록 개체를 효율적으로 비교할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!