Как вернуть одно значение из списка с помощью LINQ?
Я новичок в LINQ и знаю, что это (должно быть?) простой вопрос, но я борюсь с синтаксисом простого запроса LINQ. Следующий сокращенный код показывает, чего я пытаюсь достичь:
public class Fruit { public int ID { get; set; } = 0; public Name { get; set; } = String.Empty; } public class Fruits { public List<Fruit> ListOfFruits = new List<Fruit>() { new Fruit { ID = 0, Name = "Apple" }, new Fruit { ID = 1, Name = "Orange" }, new Fruit { ID = 2, Name = "Banana" }, } public int GetIDFromName( string fruitName ) { // What goes here? } }
Как новичок в этом деле, я был бы признателен за любой совет. В частности, я хотел бы получить решение, которое использует специальные ключевые слова LINQ ('select',' where ' и т. д.), а также стандартные функции LINQ C# (Select (), Where () и т. д.), чтобы я мог сравнить эти два подхода.
Кажется, существует очень мало примеров, которые показывают два подхода бок о бок для сравнения, и я также смущен тем, когда один подход лучше другого. Для простой последовательности я хотел бы выбрать один путь и придерживаться его.
Добрые пожелания ~ Патрик
Что я уже пробовал:
Я пробовал такие выражения, как...
ListOfFruits.Select( f => f.ID ).Where( ... )
... но я даже не могу заставить это скомпилировать, потому что, похоже, указав только идентификатор в Выбрать пункт, я перестаю быть в состоянии ссылаться на имя в Где пункт.