2016-03-28 32 views
0

Bir dizenin ilk karakterini yakalamamı gerektiren bir şey üzerinde çalışıyordum. ve S veya s ile başlarsa geri dönün. Ben kabulLINQ'da büyük/küçük harf duyarsız bir dize Eşleştirme

yalancı kod oldu:

var foodsWithS = Foods.Where(food => food.Name[0] == 'S' || food.Name[0] == "s").Select(i => i.Name); 

Maalesef bu başarısız olur. Bunu yapmanın en iyi yolu ne olurdu? Şu anda mektubun her durumunu kontrol etmek için iki lambda var.

Eğer dize nesneler topluluğu kullanıyorsanız
+0

^özellikle [ikinci cevap] 'de (http://stackoverflow.com/a/444818/1324033) – Sayse

+0

Kişisel yalancı kod yakın, ancak Jace'in yanıt işaret @ gibi, 'StartsWith' doğru bir şekilde Bunu yapmak için (LINQ-to-Objects kullandığınızı varsayarak). –

+0

true. oldukça benzer ... ama LAMBDA ifadesinde görmek güzel – h4mme7

cevap

4

foods.Where(x => x.StartsWith("S", StringComparison.OrdinalIgnoreCase));

2

, Ayrıca startswith kullanabilirsiniz;

food.StartsWith("s", StringComparison.OrdinalIgnoreCase); 
İlgili konular