List计算WhereNot的扩展方法



我有一个需求来实现List的扩展方法以找出WhereNot。我不应该使用任何现有的Linq扩展方法,如where等。

例如

IEnumerable<int> list = new List<int> {1,2,3,4,5,6};
var whereNotListInt = list.WhereNot((num) => num > 3));
foreach(int i in whereNotListInt)
{
Console.WriteLine(i);
}

输出:-123

IEnumerable<string> list = new List<string> {"Cat", "Dog"};
var whereNotListStr = list.WhereNot((str) => str.StartsWith("D")));
foreach(string str in whereNotListStr )
{
Console.WriteLine(str);
}

猫输出:

我尝试了下面的解决方案,但不知道如何调用这个函数。

public static class Utility
{
public static IEnumerable<T> WhereNot<T>(this IEnumerable<T> list, Func<T, bool> func)
{
foreach (var item in list)
{
yield return func(item);
}    
}
}

因为您只想返回条件不为真的项目,所以只返回func()返回false的项目。

public static class Utility
{
public static IEnumerable<T> WhereNot<T>(this IEnumerable<T> list, Func<T, bool> func)
{
foreach (var item in list)
{
if (!func(item))
yield return item;
}    
}
}

相关内容

  • 没有找到相关文章

最新更新