Select
Select ile her elemanı dönüştürmeyi öğrenirsin.
Select ile dönüştürme
Select metodu, koleksiyonun her elemanını dönüştürür. Bir lambda alır ve her eleman için yeni bir değer üretir. Sonuç, dönüştürülmüş elemanlardan oluşan yeni bir koleksiyondur; orijinal değişmez.
Örnek: numbers.Select(n => n * n) her sayının karesini alır. words.Select(w => w.ToUpper()) her sözcüğü büyütür. Select, map işleminin C#'taki karşılığıdır ve veriyi başka bir biçime çevirmek için kullanılır.
Where ve Select zinciri
LINQ metotlarını zincirleyebilirsin: bir metodun sonucuna öbürünü uygularsın. Sıra önemlidir: önce Where ile süzersin, sonra Select ile dönüştürürsün. numbers.Where(n => n > 2).Select(n => n * 10) önce 2'den büyük sayıları tutar, sonra onları 10'la çarpar.
Zincir, okunaklı bir akış kurar. Her metodun sonucu bir IEnumerable<T>'dir; bir sonraki metot buna uygulanır. Sonunu .ToList() ya da foreach ile bitirirsin.
Uygulama Kareleri hesapla ve yazdır
numbers dizisindeki her sayının karesini Select ile hesapla ve foreach ile yazdır. Kare: n * n.
Örnek çözümü göster
numbers.Select(n => n * n) ile kareleri üret, foreach ile gez, Console.WriteLine(s) ile yazdır.
Örnek çözüm:
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] numbers = { 2, 3, 4 };
foreach (var s in numbers.Select(n => n * n))
{
Console.WriteLine(s);
}
}
}
Kendini test et
-
Select'i sonucuna eşle
- Select(n => n * 2)
- İki katı
- Select(n => n * n)
- Karesi
- Select(w => w.ToUpper())
- BÜYÜK HARF
- Select(s => s.Length)
- Uzunluk
-
Select gövdesini tamamla
var squares = numbers.Select(n => n ____ n);Cevabı göster
var squares = numbers.Select(n => n * n); -
Select ne döndürür?
var r = words.Select(w => w.Length);- IEnumerable<int>
- IEnumerable<string>
- int
- string
Cevabı göster
IEnumerable<int> — Doğru. Select, lambda dönüş türüne göre yeni bir koleksiyon üretir; Length int olduğu için IEnumerable<int> döner.