Невозможно изолировать строку из надлежащего 2D-массива. Если бы это был зубчатый массив, тогда решение было бы очевидно.
Следовательно, если работа с строками массива важна для вас, то вы можете подумать о том, чтобы превратить его в зубчатый массив.
В противном случае, если эта операция не имеет принципиального значения, то цикл является наименее опасным способом.
Вы можете добавить простой метод расширения для этой цели, и таким образом поставить всю проблему под ковер:
public static class ArrayExtensions
{
public static IEnumerable<T> GetRow<T>(this T[,] array, int rowIndex)
{
int columnsCount = array.GetLength(1);
for (int colIndex = 0; colIndex < columnsCount; colIndex++)
yield return array[rowIndex, colIndex];
}
}
Это даст вам возможность обратиться только одну строку:
IEnumerable<int> row = array.GetRow(1);
Например, можно напечатать одну строку из матрицы в одной строке кода:
Console.WriteLine(string.Join(", ", array.GetRow(1).ToArray()));
Как вы объявили свой массив - 'int [,]' или 'int [] []'? – dana
@dana исправил это. – SuperMinefudge