‫Ve bu derste C-sharp'ın en önemli konularından biri olan jenerik ve jenerik olmayan koleksiyonlar hakkında
‫bilgi edineceksiniz.
‫Bu yüzden öncelikle koleksiyonların diziler gibi ne olduğunu anlamamız gerekir.
‫Koleksiyonlar, aynı anda birçok nesneyi veya bir nesne koleksiyonunu saklamak için kullanabileceğimiz sınıflardır,
‫dolayısıyla koleksiyon adını alırlar.
‫Dizilerin aksine, koleksiyonlar tek bir nesne türüyle sınırlı değildir.
‫Bunun yerine bir koleksiyonda istediğimiz kadar nesne türü saklayabiliriz.
‫Ayrıca, koleksiyonlar örneğin bir yarış gibi sabit boyutta değildir.
‫Uzunluklarına göre, ilerledikçe onlara öğeler ekleyebiliriz ve koleksiyon boyutunu ayarlayacaktır.
‫Bu durumda, uzunluk değil, sayı olarak adlandırılır ve bunu nasıl kullanacağımızı göreceğiz.
‫Peki neden koleksiyonlara ihtiyacımız var?
‫Peki, bir okul için yoklama sistemi oluşturduğumuz ve sistemimize zaman içinde dinamik olarak öğrenci
‫eklemek istediğimiz bu senaryoyu hayal edelim.
‫Öğrenci sınıfımızı tanımladıktan ve öğrenci türünde nesneler oluşturmaya başladıktan sonra bir sorunla karşılaşacağız.
‫Bunları bir dizide saklamak birkaç nedenden dolayı kötü bir fikirken bunları nasıl saklayacağız?
‫Her şeyden önce, dizilerin boyutu sabittir, bu nedenle 500 öğrencilik bir dizi oluşturursak, bundan daha fazlasına
‫sahip olamayız.
‫İkinci olarak, sistemimize öğretmenler, çalışanlar vb. gibi başka nesne türleri eklemeye karar verirsek
‫ne olur?
‫Bir dizinin boyutu sabit olduğundan ve yalnızca bir tür kabul edebildiğinden, sorunları çözmek için koleksiyonları kullanabiliriz.
‫Bu yüzden bunları nesne gruplarını daha verimli bir şekilde depolamak, yönetmek ve işlemek için kullanırız.
‫Dolayısıyla koleksiyonlar bir grupta birçok işlem yapmak için kullanılabilir.
‫Örneğin, nesne ekleme, silme, değiştirme, belirli nesneleri arama ve hatta nesneleri kopyalama.
‫Şimdi iki farklı koleksiyon türü var, herhangi bir nesne türünü depolamak için kullanabileceğimiz
‫genel olmayan koleksiyonlar ve bunlar bu ad alanının içindeki sistem koleksiyonlarının içindeler.
‫Ve sonra tek bir nesne türüyle sınırlı olan genel koleksiyonlarımız var.
‫Bu nedenle, saklamak istediğimiz farklı nesne türlerine ihtiyacımız olmadığından eminsek bunları kullanırız.
‫Ve system dot collections dot generic içinde bulunurlar.
‫Bu isim alanında, yani genel olmayan koleksiyonlarda, bazı örneklere bakalım.
‫Yani burada bu int num eşittir bir var beş, sonra bu float num iki var 315 string isim örneğin Dennis ve sonra
‫bu yeni dizi listesini oluşturalım, benim dizi listem ve ona num bir ekleyelim,
‫sonra ona num iki ekleyebiliriz ve ona bir isim ekleyebiliriz.
‫Burada jenerik olmadıklarını görüyorsunuz, bu da farklı türleri kullanmamıza izin verdiği anlamına geliyor.
‫Yani bir tür tamsayı, diğer tür ise float idi.
‫Yani iki numara bir float ve isim bir dizeydi.
‫Böylece bunların hepsini dizi listemize ekleyebiliriz.
‫Farklı tiptedirler.
‫Gördüğünüz gibi, onları listemize eklemek için ADD yöntemini kullanıyoruz.
‫Artık daha önce bahsettiğimiz kopyala, sil, değiştir ve benzeri yöntemleri kullanabiliriz.
‫Bunları burada ya da bu dizi listesinde kullanabiliriz çünkü dizi listesi genel olmayan bir koleksiyondur.
‫Ve şimdi for each yöntemini kullanarak dizi listemdeki tüm öğeleri gözden geçirebiliriz ve çünkü belirli
‫bir türde değildir.
‫Yani dizi listemizin içindeki elemanlar belirli bir tipte değildir.
‫Dizi listemde nesne elemanı kullanmamız gerekiyor, int kullanamayız çünkü orada float ve stringler
‫de var.
‫Float kullanamayız çünkü masum stringler de vardır.
‫İşte bu yüzden her türlü türe izin veren ve çok genel olarak kullanılan object türünü kullanıyoruz.
‫Nesne türü temelde diğer tüm türleri bünyesinde barındırır.
‫Şimdi genel koleksiyona bakalım.
‫Yani bunda hayvan bir, hayvan iki, hayvan üç olacak ve tür listesi dışında olacak.
‫Ve biz buna benim listem diyeceğiz.
‫Bu listenin yalnızca dizeleri depolayabildiğini görebilirsiniz.
‫Yani bu dizeler listesini oluşturuyoruz.
‫Ve liste genel bir koleksiyon olduğundan, gerçekten yalnızca bir tür nesne tutabilir.
‫Dolayısıyla, bu listeyi tanımlarken bu türü belirtmemiz gerekir.
‫Yani burada string türünü belirtiyoruz.
‫Dolayısıyla, ona aktarabileceğimiz veya içine kaydedebileceğimiz veya içinde saklayabileceğimiz veriler yalnızca bir köşeli parantez arasında
‫türünü vererek dizeler olacaktır.
‫Bu durumda, burada açılı parantez dizisini şu şekilde görebilirsiniz.
‫Yani teknik olarak listemin, bu bölümün tür listesi, dizesi ve gelecek videolarının bir koleksiyonu olduğunu söyleyebiliriz.
‫Farklı jenerik ve jenerik olmayan koleksiyon türlerini inceleyeceğiz ve her birinin faydalarını
‫ve bunların nasıl ve ne zaman kullanılacağını tartışacağız.
‫Dolayısıyla bu, iki konuya çok hızlı bir giriş oldu.
‫Birkaç örnek göreceğiz ve sonra her şey çok daha netleşecek.
‫Tamam.
‫Bir sonraki videoda görüşmek üzere.