ใช้ LINQ Except() หาความต่างระหว่างสอง List หากผลลัพธ์ว่าง = เท่ากัน
ตัวอย่าง: List ที่ต่างกัน
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo
{
public static void Main()
{
List<string> list1 = new List<string>() {"P", "Q", "R"};
List<string> list2 = new List<string>() {"P", "R"};
Console.WriteLine("First list: " + string.Join(", ", list1));
Console.WriteLine("Second list: " + string.Join(", ", list2));
// หาความต่าง (อยู่ใน list1 แต่ไม่อยู่ใน list2)
IEnumerable<string> diff = list1.Except(list2);
Console.WriteLine("Difference: " + string.Join(", ", diff));
// ตรวจสอบความเท่ากัน
bool areEqual = !list1.Except(list2).Any() && !list2.Except(list1).Any();
Console.WriteLine("Are Equal: " + areEqual);
}
}
ผลลัพธ์
First list: P, Q, R Second list: P, R Difference: Q Are Equal: False
วิธีอื่น: SequenceEqual (ต้องเรียงลำดับเหมือนกัน)
bool equal = list1.SequenceEqual(list2);
วิธีอื่น: ตรวจสอบ Count และทุกรายการ (สำหรับ Unordered)
bool equal = list1.Count == list2.Count &&
!list1.Except(list2).Any();