不清楚你认为from wor in words select wor 有什么好处——它真的对你一点帮助都没有。
也不清楚为什么您不想要使用 lambda 表达式。显而易见的方法是:
bool hasBelieve = words.Any(x => x.Contains("believe"));
请注意,这不是检查单词列表中是否包含单词“believe”,而是检查单词列表中是否包含任何单词包含“believe”。所以“信徒”就可以了。如果您只是想检查列表是否包含believe,您可以使用:
bool hasBelieve = words.Contains("believe");
编辑:如果您真的想在没有 lambda 表达式的情况下进行操作,则基本上需要伪造 lambda 表达式(或匿名方法)为您所做的工作:
public class ContainsPredicate
{
private readonly string target;
public ContainsPredicate(string target)
{
this.target = target;
}
public bool Apply(string input)
{
return input.Contains(target);
}
}
那么你可以使用:
Func<string, bool> predicate = new ContainsPredicate("believe");
bool hasBelieve = words.Any(predicate);
显然你真的不想这样做......
编辑:当然你可以使用:
var allBelieve = from word in words
where word.Contains("believe")
select word;
bool hasBelieve = allBelieve.Any();
但这也很丑 - 我肯定会使用 lambda 表达式。