C#

C# Liste Birleştirme

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde liste birleştirme işlemini anlatacağım. Hadi başlayalım !

C#’ta liste birleştirmenin birden fazla yolu var, aslında bence C#’ın en güzel yanlarından biri de bu; bir şey yapmak istediğinizde birden fazla seçeneğiniz oluyor. Neyse konumuza dönelim biz.

Öncelikle şunu belirtmeliyim; birleştirmek istediğiniz listelerin tuttukları veri tipleri aynı olmalıdır. Yani örneğin string listesi ile sadece string listesini birleştirebilirsiniz, integer listesini birleştiremezsiniz. Elimizde 2 tane string listesi olduğunu varsayalım, konuyu bu 2 liste üzerinden anlatacağım.

List<string> liste1 = new List<string>() { "soft", "ware", "sup", "net" };
List<string> liste2 = new List<string>() { "Software", "Sup" };

Öncelikle listenin kendi fonksiyonlarından biri olan AddRange() fonksiyonunu kullanalım. Normalde bu fonksiyon listeye tek seferde birden fazla eleman eklemek için kullanılıyor ve hem dizi, hem de listeyi parametre olarak alabiliyor. Yani parametre olarak gönderilen listenin elemanlarını belirtilen listeye ekliyor. void tipte olduğu için de geriye herhangi bir şey döndürmüyor. Örneğin bizde az önce oluşturduğumuz liste1 ile liste2’yi AddRange() metodunu kullanarak birleştirelim.

list1.AddRange(list2);

AddRange() fonksiyonu ile ekleme bu kadardı. Şimdide biz kendimiz elle ekleme yapalım. O nasıl olacak derseniz de liste’nin elemanlarını döngü yardımıyla dönecek ve her adımda ilgili elemanı liste1 içerisinde ekleyeceğiz. Buyrun;

foreach(string item in liste2)
    liste1.Add(item);

Aslında az önce kullandığımız AddRange() fonksiyonunu elle icra etmiş olduk. Ayrıca Linq kullanarak, listeler için oluşturulmuş eklenti fonksiyonlardan biri olan ForEach() fonksiyonunu kullanarakta listeleri birleştirebiliriz.

list1.ForEach(x => list2.Add(x));

Sanki böyle bir döngü kurmak daha göze hoş geliyor dimi ? 🙂 Buraya kadar listenin kendi fonksiyonlarından bahsettik, şimdi de C#’ın en güzel nimetlerinden biri olan Linq kütüphanesini kullanarak birleştirme işlemi yapalım. Nedense Linq kullanmak bana daha cazip geliyor, belki daha hızlı olduğu içindir :)Linq ile liste birleştirmek için Concat() fonksiyonunu kullanıyoruz. Fakat bu fonksiyon geriye IEnumerable tipinde bir nevi liste döndürüyor fakat tam olarakta bir liste değil 🙂 Allah Allah, o nasıl bir şey diyenlere; IEnumerable, listenin türetildiği interface’dir. Yani liste aslında bir IEnumerable’dir. Concat() metodu da bize IEnumerable döndürdüğü için biz yine Linq kullanarak tekrardan listeye çevirebiliriz. Örnek kullanım şöyle olacak yani;

List<string> birlesim = list1.Concat(list2).ToList();

Buraya kadar yaptığımız tüm birleştirme işlemlerinden sonra ilgili listeyi ekrana bastırırsanız, istediğimiz gibi birleştirme işleminin yapıldığını göreceksiniz 🙂

Bu dersimizde buraya kadardı, tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 1 Ortalama: 5]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu