gpt4 book ai didi

c# - 我怎样才能使这个扩展方法更通用?

转载 作者:太空狗 更新时间:2023-10-29 21:07:19 25 4
gpt4 key购买 nike

我正在努力让下面的方法更通用,这样任何List<T>可以传入 columnValues范围。这是我拥有的:

public static DataRow NewRow(this DataTable dataTable, List<string> columnValues)
{
DataRow returnValue = dataTable.NewRow();

while (columnValues.Count > returnValue.Table.Columns.Count)
{
returnValue.Table.Columns.Add();
}

returnValue.ItemArray = columnValues.ToArray();
return returnValue;
}

我可以将其更改为 List<object>并在将其传递给方法之前转换原始列表,但我确信有更好的选择:-)

编辑:

Frank 的帖子让我重新思考了这一点。在大多数情况下,来源 List<T>将是 List<object>因为列值很可能是不同的类型。

对于我的初次使用 List<string>这是有道理的,因为我正在从 CSV 解析创建一个数据集,该数据集当时全是文本。

最佳答案

为什么不直接使用 params object[]:

public static DataRow NewRow(this DataTable dataTable, params object[] objects)
{
DataRow returnValue = dataTable.NewRow();

while (objects.Length > returnValue.Table.Columns.Count)
{
returnValue.Table.Columns.Add();
}

returnValue.ItemArray = objects;
return returnValue;
}

那么你可以这样调用它:

myDataTable.NewRow(1,2,"hello");

关于c# - 我怎样才能使这个扩展方法更通用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com