Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีเปรียบเทียบสอง List ว่าเท่ากันหรือไม่ใน C#

ใช้ 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();