ToDictionary
ToDictionary ve ToList ile koleksiyon dönüşümü öğrenirsin.
ToList ile liste üretme
ToList metodu, ertelenmiş bir LINQ sorgusunu gerçek bir List<T>'ye çevirir. Bunu yaptığında sorgu hemen çalışır ve elemanlar belleğe yerleşir. numbers.Where(n => n > 5).ToList() sonucu bir List<int>'tir.
Sorguyu birden çok kez gezeceksen ya da eleman ekleyip çıkaracaksan ToList kullanışlıdır. Ancak yalnızca bir kez foreach ile gezeceksen ToList çağırmadan bırakmak daha az bellek harcar.
ToDictionary ile sözlük üretme
ToDictionary metodu, koleksiyonu bir Dictionary<K, V>'ye çevirir. Anahtar seçen bir lambda alır: students.ToDictionary(s => s.Id). Her eleman için anahtar, elemanın kendisi de değer olur.
İstersen değer seçici de verilebilir: students.ToDictionary(s => s.Id, s => s.Name). Anahtarlar benzersiz olmalıdır; aynı anahtar iki kez verilirse ArgumentException fırlatılır.
Uygulama Sözlüğe çevir ve eriş
students listesini ToDictionary(s => s.Id) ile bir Dictionary<int, Student>'ye çevir. Id'si 2 olan öğrencinin adını Console.WriteLine ile yazdır.
Örnek çözümü göster
var dict = students.ToDictionary(s => s.Id); ile sözlüğü kur, sonra Console.WriteLine(dict[2].Name); ile Id=2'nin adını yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main()
{
var students = new List<Student>
{
new Student { Id = 1, Name = "Ayşe" },
new Student { Id = 2, Name = "Mehmet" },
new Student { Id = 3, Name = "Zeynep" }
};
var dict = students.ToDictionary(s => s.Id);
Console.WriteLine(dict[2].Name);
}
}
Kendini test et
-
ToList çağrısını tamamla
List<int> evens = numbers.Where(n => n % 2 == 0).____();Cevabı göster
List<int> evens = numbers.Where(n => n % 2 == 0).ToList(); -
Metodu çıktısına eşle
- ToList()
- List<T>
- ToArray()
- T[]
- ToDictionary(k => k)
- Dictionary<K,T>
- First()
- Tek eleman
-
ToDictionary ne zaman hata atar?
- Aynı anahtar iki kez verildiğinde
- Boş koleksiyonda
- Tek elemanlı koleksiyonda
- ToList'den sonra çağrıldığında
Cevabı göster
Aynı anahtar iki kez verildiğinde — Doğru. ToDictionary, aynı anahtar iki kez verildiğinde ArgumentException fırlatır. Anahtarlar benzersiz olmalıdır.