C# 使用LINQ的嵌套列表索引

C# 使用LINQ的嵌套列表索引,c#,list,linq,C#,List,Linq,这在LINQ中的等价物是什么 for (int i = 0; i < list2.Count; i++) { newList.Add(list1[list2[i]]) } for(int i=0;ilist1[item])你确实意识到“在Linq中做这件事”和你已经拥有的东西基本上会以同样的方式做同样的事情。那么为什么你想“用LINQ做这个”?为什么你在乎?你的代码不起作用吗?你有什么问题吗?不管怎么说,如果你不知道它是如何工作的,linq会让它变得更复杂,更难阅读。谢谢!这是我

这在LINQ中的等价物是什么

for (int i = 0; i < list2.Count; i++) {
    newList.Add(list1[list2[i]])
}
for(int i=0;i
您可以声明新列表并填充它:

var newList = list2.Select(t => list1[t]).ToList();
或者将数据添加到现有列表中

newList.AddRange(list2.Select(t => list1[t]));
您希望获取所有
list2
项目,因此您有一个
list2
中选择

 list2.Select(item => ?)
并且每个
项目
应更改为
list1[list2项目]

 list2.Select(item => list1[item])
最后,您希望将整个查询(因此我们应该使用
AddRange
,而不是
add
)添加到
新列表中:

 newList.AddRange(list2.Select(item => list1[item]));
如果你真的创建并填写了列表,比如

 var newList = new List<MyClass>();

 newList.AddRange(...);

到目前为止您尝试了什么?
newList.AddRange(list2.Select(item=>list1[item])你确实意识到“在Linq中做这件事”和你已经拥有的东西基本上会以同样的方式做同样的事情。那么为什么你想“用LINQ做这个”?为什么你在乎?你的代码不起作用吗?你有什么问题吗?不管怎么说,如果你不知道它是如何工作的,linq会让它变得更复杂,更难阅读。谢谢!这是我正在研究的一个非常普遍的操作,与我最初的解决方案相比,像Dmitry这样的干净解决方案提高了代码的可读性。我很在乎,因为可读性是一个软件质量指标,我认为每个人都应该关心它。
 var newList = list2
   .Select(item => list1[item])
   .ToList();