将参数字符串数组添加到 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] = stringarray[1] = stringarray[2] = stringarray[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());
}