C# 어레이 비교: 효율적인 솔루션
Java는 두 가지 기본 유형 배열을 편리하게 비교할 수 있는 Arrays.equals()
메서드를 제공합니다. C#에도 비슷한 내장 함수가 있나요? C#에서 배열 내용을 효율적으로 비교하는 방법을 살펴보겠습니다.
Enumerable.SequenceEqual
C#의 한 가지 방법은 Enumerable.SequenceEqual
메서드를 사용하는 것입니다. 이 방법은 IEnumerable<T>
컬렉션에서 작동하며 IEnumerable<T>
을 구현하는 배열 및 기타 유형에 적합합니다.
코드 예:
<code class="language-csharp">int[] array1 = { 1, 2, 3 }; int[] array2 = { 1, 2, 3 }; bool areEqual = array1.SequenceEqual(array2);</code>
이 예에서 array1
과 array2
가 동일한 요소를 갖고 동일한 순서로 되어 있으면 SequenceEqual
는 true
을 반환합니다. 요소 유형의 기본 동등 비교를 사용합니다.
참고: Enumerable.SequenceEqual
은 배열뿐만 아니라 모든 IEnumerable<T>
인스턴스와 함께 사용할 수 있다는 점에서 Java에 상응하는 것보다 더 일반적입니다.
사용자 정의 비교기
더 많은 유연성이 필요하다면 사용자 정의 동등 비교기를 만들 수 있습니다. 이는 복잡한 개체로 작업하거나 특정 비교 규칙을 정의해야 할 때 유용합니다.
코드 예:
<code class="language-csharp">public class CustomComparer : IEqualityComparer<Student> { public bool Equals(Student x, Student y) { // ...在此处实现自定义比较逻辑... } public int GetHashCode(Student obj) { // ...在此处实现自定义哈希码逻辑... } } ... Student[] studentArray1 = { ... }; Student[] studentArray2 = { ... }; bool areEqual = studentArray1.SequenceEqual(studentArray2, new CustomComparer());</code>
사용자 정의 비교기를 정의하면 특정 요구 사항에 맞게 같음 검사 동작을 사용자 정의할 수 있습니다.
위 내용은 C#에는 Java의 Arrays.equals()처럼 배열을 비교하는 내장 함수가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!