将参数字符串数组添加到 Datagridview
Add params array of string to Datagridview
我有不同的 datagridview,它们的前 3 列相同。其他列因一个数据视图而异。
我写了一个扩展方法,它作为参数参数字符串数组获取,它代表其他列的值。
我的代码:
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(" ", " ", "A", parameters);
}
每个数据网格视图的列已经定义。我写的代码没有在每一列中分别添加每个字符串参数,有没有办法做到这一点?
当前,第 4 列获取整个参数字符串数组的值。
对 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
。
is there a way to do it?
当然有。这是使用一个衬里 LINQ
的一种可能方法
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(new[] { " ", " ", "A" }.Concat(parameters).ToArray());
}
我有不同的 datagridview,它们的前 3 列相同。其他列因一个数据视图而异。 我写了一个扩展方法,它作为参数参数字符串数组获取,它代表其他列的值。 我的代码:
public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(" ", " ", "A", parameters);
}
每个数据网格视图的列已经定义。我写的代码没有在每一列中分别添加每个字符串参数,有没有办法做到这一点? 当前,第 4 列获取整个参数字符串数组的值。
对 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
。
is there a way to do it?
当然有。这是使用一个衬里 LINQ
的一种可能方法public static void AddNewRow(this DataGridView datagridview, params string[] parameters)
{
datagridview.Rows.Add(new[] { " ", " ", "A" }.Concat(parameters).ToArray());
}