以下代码...
using System;
using System.Linq;
using System.Threading.Tasks;
namespace ConsoleAsync
{
class Program
{
static void Main(string[] args)
{
MainAsync(args).Wait();
Console.ReadLine();
}
static async Task MainAsync(string[] args)
{
int[] test = new[] { 1, 2, 3, 4, 5 };
if (test.Any(async i => await TestIt(i)))
Console.WriteLine("Contains numbers > 3");
else
Console.WriteLine("Contains numbers <= 3");
}
public static async Task<bool> TestIt(int i)
{
return await Task.FromResult(i > 3);
}
}
}
显示以下错误:-
CS4010: 无法将异步 lambda 表达式转换为委托类型 'Func<int, bool>'。 异步 lambda 表达式可以返回 void、Task 或 Task<T>,其中没有一个可转换为 'Func<int, bool>'。
发生在该行:
if (test.Any(async i => await Test.TestIt(i)))
你如何使用异步Lambda和linq?