C # 목록에서 중복 제거 <string []>

패트릭

검색 기능의 결과 인 데이터베이스에서 많은 데이터를 얻었습니다. 이제 List<string[]>중복 된 유형의 요소가 string[]있습니다. string[]목록의 검색 결과입니다.

새로 생성 된 모든 배열에는 다른 인스턴스가 있으므로 사용할 수 없습니다 MyListOfArrays.Distinct().ToList().

아주 기본적인 질문 일 수도 있습니다 ...

내 질문은 중복 된 string[]양식 을 제거하기 위해 내장 된 기능 List<string[]>있습니까? 아니면 내가 직접 써야하나요?

감사합니다

호세인 무타 디르

distinct사용자 정의 equalityComparer와 함께 메소드를 사용할 수 있습니다.

    IEnumerable<string[]> distinct = inputStringArrayList.Distinct(new EqualityComparer());

EqualityComparer

class EqualityComparer : IEqualityComparer<string[]>
{
    public bool Equals(string[] x, string[] y)
    {
        if (x.Length != y.Length)
        {
            return false;
        }
        if (x.Where((t, i) => t != y[i]).Any())
        {
            return false;
        }
        return true;
    }

    public int GetHashCode(string[] obj)
    {
        return obj.GetHashCode(); 
    }
}

Alternative Equals 방법

public bool Equals(string[] x, string[] y)
{
    return x.SequenceEqual(y);
}

여기에서는 동일한 인덱스에서 동일한 내용을 가진 똑같은 문자열 배열을 가지고 있다고 가정합니다.

Matthew Watson의 수정

public int GetHashCode(string[] obj)
        {
            if (obj == null)
                return 0;

            int hash = 17;

            unchecked
            {
                foreach (string s in obj)
                    hash = hash*23 + ((s == null) ? 0 : s.GetHashCode());
            }

            return hash;
        }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

목록 목록에서 중복 제거

분류에서Dev

목록 목록에서 중복 제거

분류에서Dev

중첩 목록에서 중복 제거

분류에서Dev

중첩 목록에서 중복 제거

분류에서Dev

최신 C #을 유지하면서 목록에서 중복 제거

분류에서Dev

튜플 목록에서 중복 제거

분류에서Dev

URL 목록에서 중복 제거

분류에서Dev

목록 요소에서 중복 제거

분류에서Dev

Python, 목록에서 중복 제거

분류에서Dev

Python : 목록에서 중복 제거

분류에서Dev

목록에서 중복 세트 제거

분류에서Dev

부울 목록에서 중복 제거

분류에서Dev

목록 C #에서 중복 된 데이터를 제거 하시겠습니까?

분류에서Dev

Python의 목록 목록에서 중복 목록 제거

분류에서Dev

C #에서 코드 중복 제거

분류에서Dev

Python : 목록 목록에서 중복 항목 개수 및 제거

분류에서Dev

배열에서 중복 항목 계산 및 제거 c

분류에서Dev

C의 문자열에서 중복 항목 정렬 및 제거

분류에서Dev

df / 목록 목록에서 특정 중복 제거

분류에서Dev

연결 목록의 중간에서 제거 C ++

분류에서Dev

중첩 된 목록에서 요소 제거 C #

분류에서Dev

C ++의 이중 연결 목록에서 dups 제거

분류에서Dev

java-목록에서 거의 중복 제거

분류에서Dev

중첩 된 사전 목록에서 중복 제거

분류에서Dev

목록에서 중복 항목을 효율적으로 제거

분류에서Dev

목록에서 중복 항목을 제거하는 방법 (Raku)

분류에서Dev

tcl 목록에서 중복 항목 제거

분류에서Dev

제네릭을 사용하는 목록에서 중복 제거

분류에서Dev

목록을 키로 사용하여 중첩 목록에서 중복 제거