我有这个2维布尔矩阵A
public bool[10][10] A;
是否有Linq执行以下方法的操作? (返回所有索引i
,以便对于给定的n
,A[i][n]
为真)
public List<int> getIndex (int n)
{
List<int> resp = new List<int>();
for (int i = 0; i < 10; i++)
if (A[i][n])
{
resp.Add(i);
}
return resp;
}
答案 0 :(得分:3)
return Enumerable.Range(0, A.Length).Where(x => A[x][n]).ToList();
应该这样做。否则你可以通过返回IEnumerable<int>
public IEnumerable<int> getIndex (int n)
{
return Enumerable.Range(0, A.Length).Where(x => A[x][n]);
}
答案 1 :(得分:1)
public List<int> getIndex (int n)
{
return A.Select((x, i) => new { x, i })
.Where(x => x.x[n])
.Select(x => x.i)
.ToList();
}
应该做你想做的事。