English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تحتاج الطريقة الموسعة Union إلى مجموعتين وتقوم بتحقيق مجموعة جديدة تحتوي على العناصر المختلفة من كلا المجموعتين. انظر إلى المثال التالي.
IList<string> strList1 = new List<string>() { "One", "Two", "three", "Four" }; IList<string> strList2 = new List<string>() { "Two", "THREE", "Four", "Five" }; var result = strList1.Union(strList2); foreach (string str in result) Console.WriteLine(str);
واحد اثنين ثلاثة ثلاثة أربعة خمسة
لا يمكن للطريقة الموسعة Union تقديم النتيجة الصحيحة للعناصر المعقدة. تحتاج إلى تحقيق واجهة IEqualityComparer للحصول على النتيجة الصحيحة من الطريقة Union.
قم بتحقيق واجهة IEqualityComparer لفئة Student كما يلي:
public class Student { public int StudentID { get; set; } public string StudentName { get; set; } public int Age { get; set; } } class StudentComparer : IEqualityComparer<Student> { public bool Equals(Student x, Student y) { if (x.StudentID == y.StudentID && x.StudentName.ToLower() == y.StudentName.ToLower()) return true; return false; } public int GetHashCode(Student obj) { return obj.StudentID.GetHashCode(); } }
الآن، يمكنك تقديم كلاً من فئة StudentComparer المذكورة أعلاه في طريقة Union لتحقيق النتيجة الصحيحة:
مثال: عمليات الاتحاد - C#
IList<Student> studentList1 = new List<Student>() { new Student() { StudentID = 1, StudentName = "John", Age = 18 } , new Student() { StudentID = 2, StudentName = "Steve", Age = 15 } , new Student() { StudentID = 3, StudentName = "Bill", Age = 25 } , new Student() { StudentID = 5, StudentName = "Ron", Age = 19 } }; IList<Student> studentList2 = new List<Student>() { new Student() { StudentID = 3, StudentName = "Bill", Age = 25 } , new Student() { StudentID = 5, StudentName = "Ron", Age = 19 } }; var resultedCol = studentList1.Union(studentList2, new StudentComparer()); foreach(Student std in resultedCol) Console.WriteLine(std.StudentName);
John Steve Bill Ron
جملة استعلام C # & VB.Net لا تدعم عمليات الاتحاد. ولكن، يمكنك استخدام طريقة Union للمتغيرات الاستعلامية، أو تعبئة الاستعلام برمته في أقواس مزدوجة، ثم استدعاء Union().