使用 LINQ 搜索我的列表帮助

本文关键字:列表 帮助 我的 搜索 LINQ 使用 | 更新日期: 2023-09-27 17:56:17

我有一个

    list<fruitObj>

    Fruit
    FruitName, FruitColor
    banana, yellow
    orange, orange
    cherry, red
    List<FruitObj> test = new List<FruitObj>();

是否有一种内联方式可以在列表中搜索以 BAN 开头,如果它确实包含字符串,则返回 true?

使用 LINQ 搜索我的列表帮助

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

请注意,这是区分大小写的,为了匹配"香蕉",您可以这样做:

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

区分大小写

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

假设名称是包含水果名称的属性。

这里有很多假设...

如果一个水果 Obj 有一个 .可以是你列出的名称之一的 Name 属性,你可以这样做:

list.Any(f => f.Name.StartsWith("BAN"));
test.Where(fo => fo.FruitName.ToUpper().StartsWith("BAN"));
if (test.Count(fo => fo.FruitName.ToUpper().StartsWith("BAN")) > 0) 
{
    //... 
}
var hasBAN = test.Any(fruit => fruit.FruitName.ToUpper().StartsWith("BAN"));