Programming/프로그래밍

두개의 다른클래스를 비교하여 제거하기.

leeusin 2023. 9. 12. 20:28

두 개의 클래스를 가진 리스트 A와 B가 있고, A에 있는 항목 중 B에 있는 항목과 일치하는 것을 제거하여 새로운 리스트를 만들려면 다음과 같은 C# 코드를 사용할 수 있습니다. 이 코드에서는 LINQ를 사용하여 중복 항목을 제거합니다.

예를 들어, 두 개의 클래스 ClassA와 ClassB가 있다고 가정하고, List<ClassA>와 List<ClassB>에 데이터가 저장되어 있다고 가정합니다. 그리고 c와 d는 비교하려는 속성이라고 가정합니다.

using System;
using System.Collections.Generic;
using System.Linq;

public class ClassA
{
    public int c { get; set; }
    // 다른 속성들...
}

public class ClassB
{
    public int d { get; set; }
    // 다른 속성들...
}

class Program
{
    static void Main()
    {
        List<ClassA> listA = new List<ClassA>
        {
            new ClassA { c = 1 },
            new ClassA { c = 2 },
            new ClassA { c = 3 },
            new ClassA { c = 4 }
        };

        List<ClassB> listB = new List<ClassB>
        {
            new ClassB { d = 2 },
            new ClassB { d = 4 }
        };

        // listA에서 listB에 있는 항목과 일치하는 것을 제거
        List<ClassA> result = listA.Where(a => !listB.Any(b => a.c == b.d)).ToList();

        // 결과 출력
        Console.WriteLine("제거 후:");
        foreach (ClassA item in result)
        {
            Console.WriteLine(item.c);
        }
    }
}
반응형