Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menggabungkan Dua Senarai Objek Orang dalam C# Menggunakan LINQ, Mengendalikan Pendua dan Mengira Perbezaan?

Bagaimanakah Saya Boleh Menggabungkan Dua Senarai Objek Orang dalam C# Menggunakan LINQ, Mengendalikan Pendua dan Mengira Perbezaan?

Susan Sarandon
Lepaskan: 2024-12-29 07:28:09
asal
610 orang telah melayarinya

How Can I Combine Two Lists of Person Objects in C# Using LINQ, Handling Duplicates and Calculating Differences?

Mencipta Senarai Gabungan dengan Nilai Berubah Menggunakan LINQ

Dalam senario yang dibentangkan, anda mempunyai dua senarai objek Orang dan memerlukan senarai baharu yang menggabungkan senarai ini. Untuk objek Orang yang serupa, entri yang digabungkan harus mengekalkan nama kongsinya, memiliki nilai dari list2 dan perubahannya harus dikira sebagai (list2.Value - list1.Value). Jika tiada pertindihan wujud, perubahan harus kekal pada sifar.

Untuk mencapai ini, gunakan kaedah sambungan LINQ Union. Contohnya:

var mergedList = list1.Union(list2).ToList();
Salin selepas log masuk

Tindakan ini menggabungkan dua senarai, menghapuskan pendua. Secara lalai, kaedah Equals dan GetHashCode yang ditakrifkan dalam kelas Person anda digunakan untuk menentukan kesamaan objek. Untuk perbandingan tersuai berdasarkan sifat seperti Name, ganti kaedah ini seperti berikut:

public override bool Equals(object obj)
{
    // Check if obj is convertible to Person
    var person = obj as Person;
    return Equals(person);
}

public override int GetHashCode()
{
    return Name.GetHashCode();
}

public bool Equals(Person personToCompareTo)
{
    // Check for null or empty Name
    if (personToCompareTo == null || string.IsNullOrEmpty(personToCompareTo.Name)) return false;
    // Compare Names for equality
    return Name.Equals(personToCompareTo.Name);
}
Salin selepas log masuk

Sebagai alternatif, tentukan kelas pembanding yang melaksanakan antara muka IEqualityComparer dan berikannya sebagai argumen kedua kepada kaedah Union untuk perbandingan objek tersuai . Untuk butiran lanjut, rujuk https://msdn.microsoft.com/en-us/library/system.collections.iequalitycomparer.aspx.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Dua Senarai Objek Orang dalam C# Menggunakan LINQ, Mengendalikan Pendua dan Mengira Perbezaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan