C# 分配给每个IEnumerable<;字符串>;使用Linq创建Object.StringId
如何在linq中执行以下操作C# 分配给每个IEnumerable<;字符串>;使用Linq创建Object.StringId,c#,linq,C#,Linq,如何在linq中执行以下操作 foreach (var ar in allResults) trans.Add(new Tran { TranId = ar }); linq新手,请帮助这是使用AddRange trans.AddRange(allResults.Select(ar => new Tran{ TranId
foreach (var ar in allResults)
trans.Add(new Tran
{
TranId = ar
});
linq新手,请帮助这是使用AddRange
trans.AddRange(allResults.Select(ar => new Tran{ TranId = ar})))
您所做的似乎是将
allResults
的每个元素转换为Tran
,并将所有元素添加到trans
“将每个元素转换为另一个对象”对应于LINQ中的Select
操作,可以使用AddRange
方法添加所有转换的元素:
trans.AddRange(allResults.Select(ar => new Tran { TranId = ar }));
如果trans
最初总是空的,您可以使用ToList
直接分配给trans
:
trans = allResults.Select(ar => new Tran { TranId = ar }).ToList();
我宁愿用ForEach
allResults.ToList().ForEach(t => trans.Add(new Tran() {TranId = t}));
看看这个答案张贴在MSDN上
ForEach执行操作,您不能从操作返回任何内容。什么类型是
trans
?trans是List();Tran{string TransId}这不是LINQ,也不像OP的代码那样做。更不用说,这也会得到两个列表,而不是一个(尽管有一个被丢弃)。