поиск в справке по моему списку с помощью linq

#c# #linq

#c# #linq

Вопрос:

У меня есть

     list<fruitObj>


    Fruit
    FruitName, FruitColor
    banana, yellow
    orange, orange
    cherry, red

    List<FruitObj> test = new List<FruitObj>();
  

Существует ли встроенный способ поиска в списке, который начинается с BAN, и просто возвращает true, если он действительно содержит строку?

Комментарии:

1. Не могли бы вы, пожалуйста, опубликовать исходный код класса FruitObj?

Ответ №1:

 bool hasBAN = test.Any( x => x.FruitName.StartsWith("BAN"));
  

Обратите внимание, что это чувствительно к регистру, чтобы соответствовать «банану», вы могли бы сделать:

 bool hasBAN = test.Any( x => x.FruitName.StartsWith("BAN", StringComparison.InvariantCultureIgnoreCase));
  

Ответ №2:

Это не чувствительно к регистру:

  bool hasAnyBAN = test.Any(x=>x.StartsWith("BAN", StringCoparison.InvariantCultureIgnoreCase));
  

Ответ №3:

 bool startsWithBan = test.Any(f => 
    f.Name.StartsWith("ban", StringComparison.InvariantCultureIgnoreCase));
  

Предполагается, что Name — это свойство, содержащее название фрукта.

Ответ №4:

Здесь много предположений…

ЕСЛИ у FruitObj есть .Назовите свойство, которое может быть одним из перечисленных вами имен, вы могли бы сделать это:

 list.Any(f => f.Name.StartsWith("BAN"));
  

Ответ №5:

 test.Where(fo => fo.FruitName.ToUpper().StartsWith("BAN"));

if (test.Count(fo => fo.FruitName.ToUpper().StartsWith("BAN")) > 0) 
{
    //... 
}
  

Ответ №6:

 var hasBAN = test.Any(fruit => fruit.FruitName.ToUpper().StartsWith("BAN"));