我跟着this关于lambda表达式的教程,并创建了下面的代码;c#linq lambda不在
Func<int, bool> isHighNUmber = s => s > 10;
IList<int> intList = new List<int>() { 1, 3,9, 2, 63, 236, 32, 474, 83, 832, 58, 3458, 35, 8, 4 };
Console.WriteLine("All numbers.");
foreach (int x in intList)
{
Console.WriteLine(x);
}
Console.WriteLine("High Numbers");
foreach(int x in intList.Where(isHighNUmber).ToList<int>())
{
Console.WriteLine(x);
}
并能正常工作,现在我想尝试只获得低的数字,所以我试图
foreach(int x in intList.Where(!isHighNUmber).ToList<int>())
foreach(int x in intList.Where(isHighNUmber == false).ToList<int>())
及以上语法的变化,但无法得到它的工作。我也看了像WhereNot
foreach(int x in intList.WhereNot(!isHighNUmber).ToList<int>())
的功能,以取代那里的功能,但找不到合适的one.I可以很容易地添加其他Func键做isHighNumber相反但我想如果这FUNC是非常大的你不想完全重写它。我应该怎样在where方法中得到lambda Func的反义词?
“其实调用”?该方法在使用'Where(IsHighNumber)'时也被调用,它只是'Where(x => x.IsHighNumber(x))'的快捷方式。 – HimBromBeere
也许明确调用是更好的描述 –
@MiniverCheevy但你没有调用它。您正在创建一个主体调用它的新方法。 – Servy