首页 > 解决方案 > C# Linq 合并多个列表?

问题描述

var results = from thing in AnArrayOfThings
              let list = Function(thing)
              ???
              select OneLongResultsList;

如何将所有“列表”集合合并到一个长列表中?我是 linq 新手,不能使用 lambda 表达式。

基本上,我想做的是:

List<Result> results = new ...;
foreach (Thing t in ListOfThings)
{
    List<Result> list = Function( t );
    results.MergeOrAdd( list );
}

标签: c#linq

解决方案


也许你只需要SelectMany

var results = AnArrayOfThings.SelectMany(x => Function(x));

或者在查询语法中:

var results = from thing in AnArrayOfThings
              from thingInAList in Function(thing)
              select thingInAList;

推荐阅读