LINQ的嵌套列表索引

时间:2018-06-25 14:23:51

标签: c# list linq

在LINQ中这相当于什么?

for (int i = 0; i < list2.Count; i++) {
    newList.Add(list1[list2[i]])
}

2 个答案:

答案 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();