Добавить массив параметров в строку Datagridview
У меня есть разные datagridview, которые имеют 3 одинаковых первых столбца. Другие столбцы отличаются от одного представления данных к другому. Я написал метод расширения, который получает в качестве параметров строки массив параметров, которые представляют значения других столбцов. Мой код:
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(" ", " ", "A", parameters);
}
Столбцы каждого вида данных уже определены. Код, который я написал, не добавляет каждый строковый параметр в каждый столбец соответственно, есть ли способ сделать это? В настоящее время 4-й столбец получает в качестве значения весь строковый массив params.
2 ответа
Есть ли способ сделать это?
Конечно, есть. Вот один из возможных способов использования одного лайнера LINQ
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(new[] { " ", " ", "A" }.Concat(parameters).ToArray());
}
Призыв к DataGridView.Rows.Add
ожидает массив объектов, поэтому в вашем случае он считает array[0] = string
, array[1] = string
, array[2] = string
, array[3] = string[]
, Вам необходимо создать массив объектов из ваших элементов, чтобы добавить их в строку следующим образом:
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
List<object> values = new List<object>() { " ", " ", "A" };
values.AddRange(parameters);
datagridview.Rows.Add(values.ToArray());
}
Для большей надежности рассмотрите возможность изменения params
тип объекта для params object[] parameters
также.