2013-11-04 24 views
1

我有这个二维布尔矩阵A使用LINQ找到一个矩阵的各项指标满足一定条件

public bool[10][10] A; 

有一个LINQ是什么一样以下方法呢? (返回的所有索引i因此,对于给定nA[i][n]为true)

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; 
} 

回答

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]); 
} 
+3

甚至'Enumerable.Range(0,则为a.length)...' –

+0

@SinaIravanian好点使整个事情懒惰。将更新。 – nawfal

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(); 
} 

应该做你想要什么。

相关问题