我有一个大脑屁试图使下面的方法更通用,以便任何List
可以传入columnValues
参数.这就是我所拥有的:
public static DataRow NewRow(this DataTable dataTable, ListcolumnValues) { DataRow returnValue = dataTable.NewRow(); while (columnValues.Count > returnValue.Table.Columns.Count) { returnValue.Table.Columns.Add(); } returnValue.ItemArray = columnValues.ToArray(); return returnValue; }
我可以将它更改为a List
并在将其传递给方法之前转换原始列表但我确信有更好的选择:-)
编辑:
弗兰克的帖子让我重新思考这一点.在大多数情况下,源List
将是一个,List
因为列值很可能是不同的类型.
对于我最初的使用是List
有道理的,因为我是从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");