我有一个对象类型列表。我希望从此列表中获取所有结果,其索引等于另一个类型为integer的列表中的值。这就是我的尝试:
intList
- 整数列表
result
- 对象类型列表
strList
- 对象类型列表
intList.ForEach(iInt =>
{ strList.Add(result.ElementAt(iInt).ToString()); }
);
这是否可以不使用foreach,即单个lambda表达式?
答案 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"