C# Koşullarını Case Insensitive(Büyük Küçük Harf Duyarsız) Hale Getirmek
Bugün Vakıfbank’ta Linq anlatırken, sevgili Özgür, “Linq koşullarını büyük küçük harf duyarsız hale getirebilir miyiz?” diye sordu. Ben de hemen ilgili StringComparision Enum sabitini ekledim. Normalde birçoğumuz bu işlemi ToLower() veya ToUpper() ile yapıyor ama bu durumda koşulun her iki tarafında da bu metodları kullanmak lazım. Bunun yerine aşağıdaki gibi bir kullanım çok daha pratik. Kodu paylaşıyorum.
- static void Main(string[] args)
- {
- List<Musteri> musteriler = new List<Musteri>();
- musteriler.Add(new Musteri { Id = 1, Ad = "Engin", Sehir = "Ankara" });
- musteriler.Add(new Musteri { Id = 2, Ad = "Süheyla", Sehir = "İstanbul" });
- musteriler.Add(new Musteri { Id = 3, Ad = "Neslihan", Sehir = "İstanbul" });
- musteriler.Add(new Musteri { Id = 4, Ad = "Özgür", Sehir = "Diyarbakır" });
- musteriler.Add(new Musteri { Id = 5, Ad = "Gürbüz", Sehir = "Manisa" });
- musteriler.Add(new Musteri { Id = 6, Ad = "Mehtap Özer", Sehir = "İstanbul" });
- musteriler.Add(new Musteri { Id = 7, Ad = "Berfin Özer", Sehir = "İstanbul" });
-
- var istanbullular = from m in musteriler
- where m.Sehir.Equals("istanbul",
- StringComparison.CurrentCultureIgnoreCase)
- select m;
-
- foreach (var istanbullu in istanbullular)
- {
- Console.WriteLine(istanbullu.Ad);
- }
-
- Console.ReadLine();
- }
static void Main(string[] args)
{
List<Musteri> musteriler = new List<Musteri>();
musteriler.Add(new Musteri { Id = 1, Ad = "Engin", Sehir = "Ankara" });
musteriler.Add(new Musteri { Id = 2, Ad = "Süheyla", Sehir = "İstanbul" });
musteriler.Add(new Musteri { Id = 3, Ad = "Neslihan", Sehir = "İstanbul" });
musteriler.Add(new Musteri { Id = 4, Ad = "Özgür", Sehir = "Diyarbakır" });
musteriler.Add(new Musteri { Id = 5, Ad = "Gürbüz", Sehir = "Manisa" });
musteriler.Add(new Musteri { Id = 6, Ad = "Mehtap Özer", Sehir = "İstanbul" });
musteriler.Add(new Musteri { Id = 7, Ad = "Berfin Özer", Sehir = "İstanbul" });
var istanbullular = from m in musteriler
where m.Sehir.Equals("istanbul",
StringComparison.CurrentCultureIgnoreCase)
select m;
foreach (var istanbullu in istanbullular)
{
Console.WriteLine(istanbullu.Ad);
}
Console.ReadLine();
}
Bu sorgu sonucunda her ne kadar koleksiyon içerisinde şehirler büyük “İ” olsa ve arama küçük ”i” ye göre yapılsa da tüm İstanbul’lar gelecektir.
Engin Demiroğ,MCT,engin@yazilimDevi.com