> 백엔드 개발 > C++ > C# 목록에서 중복을 효율적으로 제거하려면 어떻게해야합니까?

C# 목록에서 중복을 효율적으로 제거하려면 어떻게해야합니까?

Susan Sarandon
풀어 주다: 2025-01-29 02:12:10
원래의
969명이 탐색했습니다.

목록 제거 How Can I Efficiently Remove Duplicates from a C# List?
여러 반복 항목

C#에서 수집 관리는 일반적인 작업입니다. 때로는 목록에서 반복 요소를 삭제해야합니다. 이는 데이터 청소 또는 고유 한 가치 찾기와 같은 다양한 프로그래밍 시나리오의 일반적인 수요입니다. 다행히도이를 달성하는 방법에는 여러 가지가 있습니다. LINQ (.NET 3 이상에 적합) 가장 간단하고 쉽게 읽을 수있는 솔루션 중 하나는 LINQ (언어 통합)를 사용하는 것입니다. 이 기능은 .NET 3에 도입되어 데이터를 쿼리하고 전달하는 명령문 메소드를 제공합니다. 다음은 LINQ의 예입니다 :

목록의 반복 요소를 필터링하고 고유 한 요소 만 포함하는 새 목록 를 반환합니다. 메소드 생성 된

를 로 변환합니다.

이미 LINQ 표현식을 사용하는 경우이 방법은 매우 편리합니다. 해시 세트 사용 또 다른 선택은 빠른 검색과 효율적인 반복 감지를 위해 설계된 수집 유형 인 Hashset을 사용하는 것입니다. 다음은이 작업을 수행 할 수있는 메소드입니다.

처음에는 비어 있습니다. 우리는 에서 각 프로젝트를 가로 지르고 컬렉션에 추가하려고했습니다. 해시셋은 반복 할 수 없으므로 유일한 프로젝트 만 성공적으로 추가 할 수 있습니다. 마지막으로 생성 된 컬렉션은 를 사용하여 목록으로 돌아갑니다.

이 방법은 삽입 및 검색 작업을위한 O (N) 성능을 제공합니다.
<code class="language-csharp">List<T> withDupes = LoadSomeData();
List<T> noDupes = withDupes.Distinct().ToList();</code>
로그인 후 복사
사전 사용

세 번째 방법은 고유 한 요소를 추적하기 위해 사전을 사용하는 것과 관련이 있습니다. Distinct() 고유 한 요소에 대한 임시 저장소. 우리는 목록을 통과하여 각 항목이 사전에 존재하는지 확인했습니다. 그렇지 않은 경우 사전 및 목록에 추가합니다. withDupes 이 방법은 O (n) 복잡성을 제공하지만 고유하게 추적하기위한 추가 데이터 구조를 만들어야합니다. noDupes 올바른 메소드를 선택하십시오 중복 항목을 삭제하는 가장 좋은 방법은 특정 요구 사항에 따라 다릅니다. 코드 라이브러리에서 LINQ를 사용한 경우 LINQ는 간단한 솔루션을 제공합니다. Hashset은 효율적인 검색 및 삽입 성능을 제공하여 대형 컬렉션에 적합합니다. 그러나 요소의 원래 순서를 유지하지는 않습니다. 마지막으로 사전 방법을 사용하면 각 고유 한 요소와 관련된 정보를 추적 할 수 있지만 사전 데이터 구조의 생성으로 인해 일부 비용이 발생합니다. ToList()

위 내용은 C# 목록에서 중복을 효율적으로 제거하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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