用linq搜索我的列表帮助

时间:2011-05-10 20:24:14

标签: c# linq

我有一个

    list<fruitObj>


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

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

是否有内联方式在列表中搜索BAN的开头,如果包含字符串,则返回true?

6 个答案:

答案 0 :(得分:4)

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

请注意,这是区分大小写的,以匹配您可以执行的“banana”:

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

答案 1 :(得分:3)

不区分大小写

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

这里有很多假设......

如果FruitObj的.Name属性可以是您列出的名称之一,则可以这样做:

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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