【发布时间】:2016-09-24 23:34:20
【问题描述】:
示例:
说我有
var arr = new int[][] {
{ 1, 9, 4 },
{ 2, 4, 4 },
{ 3, 0, 5 }
};
说我想要3 的索引。所以我想要一个相当于
Tuple<int,int> indices;
for(int i = 0; i < arr.Length; ++i)
for(int j = 0; j < arr[i].Length; ++j)
if(arr[i][j] == 3)
return new Tuple<int,int>() { i, j }
理想情况下无需编写任何扩展方法,并且最好以紧凑高效的方式进行。
【问题讨论】:
-
你确定
var arr = new int[][]而不是new int[,]因为定义的方式,示例无法编译。换句话说,您要的是 jagged 还是 2d 数组。 -
@IvanStoev 我不想要
[,],因为那样我就不能在上面使用 LINQ -
然后正确调用它并使用编译的例子。
-
您的
for loop是您在示例和规范中可以获得的最佳效率。 -
在不提供minimal reproducible example 的情况下错误地调用是一种主要的、超级优雅的方式,适用于每个不是失败者的人