■ Enumerable 클래스의 Where/All 확장 메소드를 사용해 상대 리스트에 없는 항목을 추출하는 방법을 보여준다.
▶ Person.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
namespace TestProject { /// <summary> /// 사람 /// </summary> public class Person { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region ID - ID /// <summary> /// ID /// </summary> public int ID { get; set; } #endregion } } |
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { List<Person> list1 = new List<Person>(); list1.Add(new Person() { ID = 1 }); list1.Add(new Person() { ID = 2 }); list1.Add(new Person() { ID = 3 }); list1.Add(new Person() { ID = 4 }); list1.Add(new Person() { ID = 5 }); List<Person> list2 = new List<Person>(); list2.Add(new Person() { ID = 1 }); list2.Add(new Person() { ID = 2 }); list2.Add(new Person() { ID = 3 }); // 리스트1에는 있지만 리스트2에는 없는 항목을 추출한다. IEnumerable<Person> personEnumerable = list1.Where(p1 => list2.All(p2 => p2.ID != p1.ID)); foreach(Person person in personEnumerable) { Console.WriteLine(person.ID); } } #endregion } |