LINQ Except,Concat ve Union Methodları
Selamlar,
Bu makalede LINQ Except,Concat ve Union Methodları ile koleksiyonlar üzerinde ne tür işlemler yapabiliriz onları inceliyor olacağız.
Except
1 2 | double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 }; double[] numbers2 = { 2.2 }; |
Except metodu elimizde bulunan koleksiyon elemanları ile parametre olarak aldığı koleksiyonun elemanlarını karşılaştırma işlemi yapar.Bu karşılaştırma sonucunda bize iki koleksiyon arasındaki farklı elemanları yeni bir koleksiyon olarak döner.
1 2 3 | IEnumerable<double> result= numbers1.Except(numbers2); foreach (double number in result) Console.WriteLine(number); |
Kodumuzu inceleyecek olursak numbers1 ve numbers2 koleksiyonlarını except metodu ile karşılaştırarak numbers1 koleksiyonunda olmayan elemanları ayrı bir koleksiyon olarak elde ettik ve bir döngü yardım ile ekrana yazdırdık.
Concat
Concat metodu elimizde bulunan koleksiyon ile parametre olarak aldığı koleksiyonu birleştirme işlemi yapar. Bu birleştirme sonucunda bize yeni bir koleksiyon döner.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | List<Student> students = new List<Student>() { new Student { Name= "Svetlana", SurName= "Omelchenko", Id=111, Street="123 Main Street", CityName="Seattle", Scores= new List<int> { 97, 92, 81, 60 } }, new Student { Name="Claire", SurName="O’Donnell", Id=112, Street="124 Main Street", CityName="Redmond", Scores= new List<int> { 75, 84, 91, 39 } }, }; List<Teacher> teachers = new List<Teacher>() { new Teacher { Name="Ann", SurName= "Beebe", Id=945, CityName= "Seattle" }, new Teacher { Name="Alex", SurName="Robinson", Id=956, CityName="Redmond" }, }; |
Kodumuzu inceleyecek olursak Teacher ve Student koleksiyonlarında ki CityName=”Seattle” olan verileri LINQ ile çekip Concat metodu ile birleştirerek tek bir koleksiyon elde etmiş olduk.
1 2 3 4 5 | var concatList = (from student in students where (student.CityName == "Seattle") select new { student.Name, student.SurName }) .Concat(from teacher in teachers where (teacher.CityName == "Seattle") select new { teacher.Name, teacher.SurName }).ToList(); |
Union
1 2 | double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 }; double[] numbers2 = { 2.2 }; |
Union metodu elimizde bulunan koleksiyon ile parametre olarak aldığı koleksiyonu tek bir koleksiyon olarak bize geri döner.Union işlemi gerçekleştirilirken tekrar eden kayıtlar yeni koleksiyona sadece bir kez eklenir.
1 2 3 | IEnumerable<double> result= numbers1.Union(numbers2); foreach (double number in result) Console.WriteLine(number); |
Kodumuzu inceleyecek olursak numbers1 ve numbers2 koleksiyonlarını union metodu ile tek bir koleksiyon haline getirdik.
LINQ Except,Concat ve Union methodlarının koleksiyonlar üzerinde kullanımlarını bu şekilde örneklendirebiliriz.LINQ içerinde gelen bu hazır metodlar sayesinde karmaşık işlemleri kolayca yapabilmekteyiz.
Hoşçakalın…
Son Yorumlar