> 백엔드 개발 > C++ > C#에는 Java의 Arrays.equals()처럼 배열을 비교하는 내장 함수가 있습니까?

C#에는 Java의 Arrays.equals()처럼 배열을 비교하는 내장 함수가 있습니까?

Barbara Streisand
풀어 주다: 2025-01-16 11:05:59
원래의
233명이 탐색했습니다.

Does C# Have a Built-in Function to Compare Arrays Like Java's Arrays.equals()?

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>
로그인 후 복사

이 예에서 array1array2가 동일한 요소를 갖고 동일한 순서로 되어 있으면 SequenceEqualtrue을 반환합니다. 요소 유형의 기본 동등 비교를 사용합니다.

참고: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿