获取列表的所有索引的所有结果

时间:2013-09-16 07:42:39

标签: c# linq lambda

我有一个对象类型列表。我希望从此列表中获取所有结果,其索引等于另一个类型为integer的列表中的值。这就是我的尝试:

intList - 整数列表
result - 对象类型列表
strList - 对象类型列表

intList.ForEach(iInt =>
  { strList.Add(result.ElementAt(iInt).ToString()); }
);  

这是否可以不使用foreach,即单个lambda表达式?

2 个答案:

答案 0 :(得分:4)

此LINQ表达式等同于您的ForEach语句(假设strList最初为空):

strList = intList.Select(i => result.ElementAt(i).ToString()).ToList();

答案 1 :(得分:1)

最后一行是所需的lambda:

var strings = new [] { "one", "two", "three", "four", "five"};
var ints = new [] { 2, 4};
var result = ints.Select(i=>strings[i]); // returns "three", "five"