如何使用lambda表达式获取数组索引

时间:2013-05-10 13:14:44

标签: c# .net arrays lambda

我试图创建一个连接整数数组元素的字符串:

string.Join(", ", integerArray.Select(p => p.ToString()).ToArray())

这样我会得到类似的结果:1, 2, 3, 4

现在我想为每个元素打印数组中相应位置的索引,如下所示:{0} 1, {1} 2, {2} 3, {3} 4

不关心格式。我想知道的是如何获取lambda表达式中每个选定元素的数组索引?

2 个答案:

答案 0 :(得分:4)

Select有一个重载,它将索引作为lambda的输入:

string.Join(", ", integerArray.Select((p, i) => string.Format("[{0}] {1}",i,p)).ToArray());

请注意,我使用[]代替{}只是为了避免在string.Format中使用大括号的丑陋。如果真的想要大括号,你可以这样做:

string.Join(", ", integerArray.Select((p, i) => string.Format("{{{0}}} {1}",i,p)).ToArray())

答案 1 :(得分:2)

与斯坦利一样,只是花括号

int[] integerArray = {1,2,3,4,5};
string result = string.Join(", ", integerArray.Select((p, i) => string.Format("{{{0}}} {1}", i, p.ToString())).ToArray());
Console.WriteLine(result);