2016-03-28 11 views
0

Ich arbeitete an etwas, das mich das erste Zeichen einer Zeichenfolge abfangen musste. und zurück, wenn es mit S oder s beginnt.Groß-/Kleinschreibung keine Übereinstimmung in LINQ Wo

Der Pseudo-Code I betrachtet war:

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

Leider ist dies nicht. Was wäre der beste Weg, dies zu tun? Zur Zeit habe ich zwei lambdas, um für jeden Fall des Briefes zu überprüfen.

+0

^Insbesondere [die zweite Antwort] (http://stackoverflow.com/a/444818/1324033) – Sayse

+0

Ihre Pseudo-Code der Nähe war, aber wie @ Jaces Antwort weist darauf hin, 'StartsWith' ist der richtige Weg um dies zu tun (vorausgesetzt, Sie verwenden LINQ-to-Objects). –

+0

wahr. ziemlich ähnlich ... aber gut, um es in einem LAMBDA-Ausdruck zu sehen – h4mme7

Antwort

4

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

2

Wenn Sie eine Sammlung von String-Objekte verwenden, können Sie auch nutzen Starts;

food.StartsWith("s", StringComparison.OrdinalIgnoreCase);