두 개의 같은 클래스의 다른 데이터를 가진 리스트를 합치고, 클래스 내부의 A 값이 동일한 경우 하나만 남기고 합치는 작업을 하려면 LINQ의 GroupBy 함수와 Select 함수를 활용할 수 있습니다. 아래 예시 코드로 설명하겠습니다.
예를 들어, 다음과 같은 클래스가 있다고 가정합니다:
class Item
{
public string A { get; set; }
public int B { get; set; }
}
그리고 합친다.
using System;
using System.Collections.Generic;
using System.Linq;
class Item
{
public string A { get; set; }
public int B { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Item> list1 = new List<Item>
{
new Item { A = "A1", B = 10 },
new Item { A = "A2", B = 20 },
new Item { A = "A3", B = 30 }
};
List<Item> list2 = new List<Item>
{
new Item { A = "A2", B = 25 },
new Item { A = "A3", B = 35 },
new Item { A = "A4", B = 45 }
};
var mergedList = list1.Concat(list2)
.GroupBy(item => item.A)
.Select(group => group.First())
.ToList();
Console.WriteLine("Merged and deduplicated list:");
foreach (var item in mergedList)
{
Console.WriteLine($"A: {item.A}, B: {item.B}");
}
}
}
위의 코드에서 Concat 함수로 두 개의 리스트를 합친 후, GroupBy 함수를 사용하여 A 값을 기준으로 그룹화합니다. 그 다음, 각 그룹에서 첫 번째 아이템을 선택하여 중복을 제거한 리스트를 생성합니다.
결과적으로 mergedList는 A 값이 중복되지 않도록 하여 합쳐진 리스트가 됩니다.
반응형
'Programming > 프로그래밍' 카테고리의 다른 글
두개의 다른클래스를 비교하여 제거하기. (0) | 2023.09.12 |
---|---|
[unity] 파일(또는 오브젝트) 선택시 커스텀 윈도우의 업데이트 방법 2가지 (0) | 2023.07.18 |
[unity] 선택한 파일 Scene으로 가져오는법. (0) | 2023.07.17 |
[unity] 커스텀 윈도우를 다른 윈도우의 탭으로 넣기. (0) | 2022.05.19 |