我有一个对象类型列表。我想从此列表中获取所有结果,其索引等于另一个整数类型列表中的值。这是我尝试过的:
intList
- 整数
result
列表 - 对象类型
strList
列表 - 对象类型列表
intList.ForEach(iInt =>
{ strList.Add(result.ElementAt(iInt).ToString()); }
);
如果不使用 foreach 即在单个 lambda 表达式中,这可能吗?
此 LINQ 表达式等效于您的ForEach
语句(假设strList
最初为空):
strList = intList.Select(i => result.ElementAt(i).ToString()).ToList();
最后一行是所需的 lambda:
var strings = new [] { "one", "two", "three", "four", "five"};
var ints = new [] { 2, 4};
var result = ints.Select(i=>strings[i]); // returns "three", "five"