如何使用C# Linq从List向列表添加项目< IEnumerable>

thtygnil  于 2022-12-20  发布在  C#
关注(0)|答案(1)|浏览(149)

我有一个列表T,并且我有一个IEnumerable列表查询。我想将IEnumerable列表的选择/所有值添加到此列表T。我尝试了以下操作,但显示错误:无法将类型“List IEnumerable”隐式转换为泛型列表Reason。
我对LINQ很陌生,请指导。我尝试了以下方法:

public class Reason
{
public int ReasonId { get; set; }
public int OrderId { get; set; }
}

 var newReason = new List<Reason>();

 newReason = reasons?.Select(res => res.Select(re => new Reason()
                    {
                        ReasonId  = re.ReasonId,
                        OrderId = re.OrderId,
                    })).ToList();
e4eetjau

e4eetjau1#

您正在尝试通过展平嵌套的reasons列表来创建Reason示例的列表,请尝试SelectMany()

newReason = reasons?.SelectMany(re => new Reason()
                    {
                        ReasonId  = re.ReasonId,
                        OrderId = re.OrderId,
                    })?.ToList()
                    ?? new List<Reason>();

Select()中的Select()将返回IEnumerable<IEnumerable<Reason>>,并且您需要将Reason类的列表(即List<Reason>)扁平化,因此使用SelectMany()

相关问题