1

私はこの2次元ブール行列を持っていますA

public bool[10][10] A;

以下のメソッドが行うことを行うLinqはありますか? (指定された,が trueiになるようにすべてのインデックスを返す)nA[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;
}
4

2 に答える 2

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]);
}
于 2013-11-04T04:45:36.273 に答える
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();
}

やりたいことをやればいい。

于 2013-11-04T04:42:27.560 に答える