Добавьте один столбец 2D-массива в список с помощью AddRange

У меня есть один 2D-массив:

string[,] table = new string[100,2];

и я хочу добавить таблицу [,0] в список, что-то вроде этого

listbox1.Items.AddRange(table[,0]);

Какой трюк для этого?

Изменить: я хочу знать, если это возможно сделать с помощью AddRange

1 ответ

Решение

Для удобства чтения вы можете создать метод расширения для массива.

public static class ArrayExtensions
{
    public static T[] GetColumn<T>(this T[,] array, int columnNum)
    {
        var result = new T[array.GetLength(0)];

        for (int i = 0; i < array.GetLength(0); i++)
        {
            result[i] = array[i, columnNum];
        }
        return result;
    }
}

Теперь вы можете легко добавлять диапазоны в виде фрагментов из массива. Обратите внимание, что вы создаете копию элементов из исходного массива.

listbox1.Items.AddRange(table.GetColumn(0));
Другие вопросы по тегам