在LINQ中这相当于什么?
for (int i = 0; i < list2.Count; i++) {
newList.Add(list1[list2[i]])
}
答案 0 :(得分:1)
您可以声明newList并填充它:
var newList = list2.Select(t => list1[t]).ToList();
或将数据添加到现有列表中
newList.AddRange(list2.Select(t => list1[t]));
答案 1 :(得分:1)
您要获取所有 个list2
物品,因此您有一个Select
中的list2
:
list2.Select(item => ?)
,每个item
都应更改为list1[list2 item]
:
list2.Select(item => list1[item])
最后,您想将 entire 查询添加到AddRange
中(因此我们应该使用Add
,而不是newList
):
newList.AddRange(list2.Select(item => list1[item]));
如果您实际上是创建然后填写列表,请说
var newList = new List<MyClass>();
newList.AddRange(...);
您可以一次完成 :
var newList = list2
.Select(item => list1[item])
.ToList();