2

arr[26,20]各配列の最初の位置にアルファベットがあるような配列の配列があります。

マトリックス形式でレイアウトされているので、次のようになります。

  • ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • //////////////////////////
  • //////////////////////////
  • //////////////////////////
  • //////////////////////////

null値を表すスラッシュ。

1つの列のnull以外の要素の数を取得しようとしています。

したがって、通常の配列で使用できるコードは次のようになります。

int number = arr[0].Count(s => s != null);

しかし、説明されているようなマトリックスに対してこれをどのように行うのでしょうか?

4

3 に答える 3

6

Enumerable.Range()行インデックスを生成するために使用できます。

int colIdx = 0; // column index to check
int num = Enumerable.Range(0,arr.GetLength(0)).Count(i => arr[i,colIdx] != null);

ここでGetLength(dim)、次元に沿った要素の数を指定しますdim(0 - 最初の次元、1 - 2 番目の次元など)。

于 2012-12-12T08:37:27.850 に答える
1

あなたは単に使用することができます:

int columnIndex = 1;// column index to check
arr.Count(s => s[columnIndex] != null);
于 2012-12-12T08:37:41.173 に答える
0

使用できます

arr.Cast<YourArrayElementType>().Count(s => s != null);

その理由は、多次元配列は非ジェネリックIEnumerableですが、残念ながらジェネリックではないためIEnumerable<YourArrayElementType>です。

おっと、これは 1 つの列/行だけでなく、マトリックス全体の非 null 要素をカウントします。したがって、代わりにdigEmAllの回答を使用してください。または、古き良きforループを使用してみませんか?

于 2012-12-12T09:05:47.403 に答える