如何填充List>

本文关键字:List Task 填充 何填充 | 更新日期: 2023-09-27 18:16:25

我仍然在尝试处理新的async/await操作符。我有几个返回Task>的异步方法,我计划用它们来捕获带有结果集的问题——主要目的是多个检查可以并发发生。

事实上,当我执行await Task.WhenAll()时,我得到一个List[],我必须遍历它才能得到我想要的。我在想一定有更好的方法来做到这一点-任何帮助都会很感激!

这是我的测试代码(我使用Linqpad作为测试平台):results是List[],而ErrorList是我想要的样子。再次感谢!

async Task Main()
{
    var results = await Task.WhenAll (FirstCheck(), SecondCheck());
    var ErrorList = new List<string>();
    foreach (var d in results)
    {
        foreach (var i in d)
        {
            ErrorList.Add(string.Format("error: {0}",i));
        }
    }
    results.Dump();
    ErrorList.Dump();
}
async Task<List<string>> FirstCheck()
{
    List<string> Errors = new List<string>{"a","b","c"};
    return Errors;
}
  async Task<List<string>> SecondCheck()
{
    List<string> Errors = new List<string>{"a","b","c"};
    return Errors;
}

如何填充List<Task<List< >>

听起来你只是想把List<string>[]转换成IEnumerable<string>,这不是异步特定的…plain LINQ可以做到:

var errors = results.SelectMany(x => x);

将列表数组平展为单个序列

相关文章: