>백엔드 개발 >C++ >중복 항목을 처리하고 원본 목록을 보존하면서 C#에서 여러 목록을 효율적으로 결합하려면 어떻게 해야 합니까?

중복 항목을 처리하고 원본 목록을 보존하면서 C#에서 여러 목록을 효율적으로 결합하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-28 10:28:18269검색

How can I efficiently combine multiple lists in C# while handling duplicates and preserving original lists?

여러 목록을 손쉽게 결합

프로그래밍 작업에서는 여러 목록을 함께 병합해야 하는 경우가 흔합니다. 문자열을 포함하는 두 개의 목록이 있고 원래 시퀀스를 유지하고 중복을 제거하면서 효율적으로 결합하려는 시나리오를 생각해 보십시오.

해결책

다행히도 .NET 프레임워크는 이 작업에 대한 간단한 솔루션을 제공합니다. 권장되는 접근 방식은 다음과 같습니다.

List<string> a = new List<string>();
List<string> b = new List<string>();

a.AddRange(b);

AddRange 메서드를 활용하면 목록 b의 요소를 목록 a의 끝에 손쉽게 추가할 수 있습니다. 그러나 이 방법은 중복 항목을 제거하지 않습니다.

원본 목록 보존

원본 목록을 변경하는 것이 바람직하지 않은 경우 Concat 방법을 사용할 수 있습니다.

var newList = a.Concat(b);

이 작업은 원본을 수정하지 않고 두 목록의 요소를 결합하는 새로운 IEnumerable 컬렉션을 생성합니다. 목록 a가 null인 경우 Concat 메서드는 목록 b의 요소만 포함하는 IEnumerable을 반환한다는 점에 유의하는 것이 중요합니다.

사용 예

다음을 고려하세요. 예:

List<string> colors1 = new List<string> { "Red", "Blue", "Yellow" };
List<string> colors2 = new List<string> { "Orange", "Pink", "Green" };

Console.WriteLine("Original Lists:");
Console.WriteLine(string.Join(",", colors1));
Console.WriteLine(string.Join(",", colors2));

colors1.AddRange(colors2);
Console.WriteLine("Combined List with Duplicates:");
Console.WriteLine(string.Join(",", colors1));

var colors3 = colors1.Concat(colors2);
Console.WriteLine("Combined List without Duplicates:");
Console.WriteLine(string.Join(",", colors3));

출력:

Original Lists:
Red,Blue,Yellow
Orange,Pink,Green
Combined List with Duplicates:
Red,Blue,Yellow,Orange,Pink,Green,Orange,Pink,Green
Combined List without Duplicates:
Red,Blue,Yellow,Orange,Pink,Green

위의 코드는 중복 항목이 있거나 없는 목록을 결합하기 위해 AddRange 및 Concat 메서드를 사용하는 방법을 보여줍니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.