임 다음 this 람다 식에 대한 자습서를 작성하고 다음 코드를 작성하십시오.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>())
같은 함수를 찾았지만 쉽게 isHighNumber의 반대를 할 다른 Func을 추가 할 수있는 적절한 나라면을 찾을 수 있지만 FUNC 당신이 매우 큰 경우 내가 상상할 수 없었다 그것을 완전히 다시 쓰고 싶지 않을 것입니다. where 메서드에서 lambda Func의 반대를 어떻게 얻을 수 있습니까?
"실제로 호출 하시겠습니까?" 이 메소드는'Where (IsHighNumber)'를 사용할 때도 호출되며'Where (x => x.IsHighNumber (x)) '의 바로 가기입니다. – HimBromBeere
어쩌면 명시 적으로 호출됩니다 더 나은 설명입니다 –
@MiniverCheevy하지만 당신은 그것을 호출하지 않습니다. 몸체가 그것을 호출하는 새로운 메소드를 생성하고 있습니다. – Servy