C#에서 두 목록 비교

Muhammad Maisam Abbas 2024년2월16일
  1. 목록을 비교하여 C#의 Linq 메서드로 차이점 찾기
  2. 목록을 비교하여 C#의List.Contains()함수를 사용하여 차이점 찾기
C#에서 두 목록 비교

이 자습서에서는 두 목록을 비교하여 C#의 차이점을 찾는 방법에 대해 설명합니다.

목록을 비교하여 C#의 Linq 메서드로 차이점 찾기

다음 시나리오를 고려하면list1list2의 2 개 목록이 있으며list2에없는list1요소와list1에없는list2의 요소를 알고 싶습니다. Linq의 Except() 함수의 도움으로 할 수 있습니다. Linq 또는 언어 통합 쿼리는 C#의 데이터 구조를 쿼리하는 데 사용됩니다. Except()함수는 다른 목록에없는 한 목록의 요소 집합을 반환합니다. 다음 코드 예제는 C#의 Linq와 차이점에 대해 두 목록을 비교하는 방법을 보여줍니다.

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

namespace compare_lists {
  class Program {
    static void Main(string[] args) {
      List<int> list1 = new List<int> { 1, 1, 2, 3, 4 };
      List<int> list2 = new List<int> { 3, 4, 5, 6 };
      List<int> firstNotSecond = list1.Except(list2).ToList();
      var secondNotFirst = list2.Except(list1).ToList();
      Console.WriteLine("Present in List1 But not in List2");
      foreach (var x in firstNotSecond) {
        Console.WriteLine(x);
      }
      Console.WriteLine("Present in List2 But not in List1");
      foreach (var y in secondNotFirst) {
        Console.WriteLine(y);
      }
    }
  }
}

출력:

Present in List1 But not in List2
1
2
Present in List2 But not in List1
5
6

위 코드에서list1list2목록의 차이점을 비교했습니다. 먼저list1에있는 요소를 저장했지만 새 목록firstNotSecondlist2에는 저장하지 않았습니다. 그런 다음list2에 있지만 새 목록secondNotFirstlist1에는없는 요소를 저장했습니다. 결국,firstNotSecondsecondNotFirst목록의 요소를 모두 인쇄했습니다. 유일한 단점은 다른 목록에없는 한 목록의 반복 값이 한 번만 인쇄된다는 것입니다.

목록을 비교하여 C#의List.Contains()함수를 사용하여 차이점 찾기

List.Contains()함수는 요소가 C#에 목록에 있는지 여부를 결정하는 데 사용됩니다. List.Contains(x)함수는x요소가 목록에 있으면 true를 리턴하고 요소x가 없으면 false를 리턴합니다. Linq와 함께List.Contains()메서드를 사용하여 한 목록에 있고 다른 목록에는없는 요소를 확인할 수 있습니다. 다음 코드 예제는 C#의List.Contains()함수를 사용하여 차이점에 대해 두 목록을 비교하는 방법을 보여줍니다.

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

namespace compare_lists {
  class Program {
    static void Main(string[] args) {
      List<int> list1 = new List<int> { 1, 2, 3, 4 };
      List<int> list2 = new List<int> { 3, 4, 5, 6 };
      var firstNotSecond = list1.Where(i => !list2.Contains(i)).ToList();
      var secondNotFirst = list2.Where(i => !list1.Contains(i)).ToList();
      Console.WriteLine("Present in List1 But not in List2");
      foreach (var x in firstNotSecond) {
        Console.WriteLine(x);
      }
      Console.WriteLine("Present in List2 But not in List1");
      foreach (var y in secondNotFirst) {
        Console.WriteLine(y);
      }
    }
  }
}

출력:

Present in List1 But not in List2
1
1
2
Present in List2 But not in List1
5
6

위 코드에서list1list2목록의 차이점을 비교했습니다. 먼저list1에있는 요소를 저장했지만 새 목록firstNotSecondlist2에는 저장하지 않았습니다. 그런 다음list2에는 있지만 새 목록secondNotFirstlist1에는없는 요소를 저장했습니다. 결국,firstNotSecondsecondNotFirst목록의 요소를 모두 인쇄했습니다. 여기서 출력은 반복되는 값만큼 반복됩니다. 반복되는 값을 고려하려면이 방법이 이전 방법보다 선호되어야합니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp List