我想做如何编写一个或扩展方法
var testData = new[] { "aap", "aal", "noot", "mies", "wim", "zus", "jet" };
bool result = testData.Or(s => s.Contains("z"));
但对的IEnumerable没有“或”方法。
我试着使用编程
public static class extensions
{
public static bool Or<TSource>(this IEnumerable<TSource> sourceCollection, Func<TSource, bool> selector)
{
return sourceCollection.Where(selector).Select(selector).FirstOrDefault();
}
}
Ofcourse的或扩展方法,这个想法是不是往往需要调用选择()。第一次评估为真确定结果。我的解决方案的问题是selector()在第一个返回true的项上调用两次。我想这是因为对Select()的调用。
我该如何解决这个问题?
'Or'应该做什么?你可能在寻找'Any()'? – Jens 2010-10-28 10:16:01