当前位置:  开发笔记 > 编程语言 > 正文

如何使此扩展方法更通用?

如何解决《如何使此扩展方法更通用?》经验,为你挑选了1个好方法。

我有一个大脑屁试图使下面的方法更通用,以便任何List可以传入columnValues参数.这就是我所拥有的:

public static DataRow NewRow(this DataTable dataTable, List columnValues)
{
    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解析创建一个数据集,这是该点的所有文本.



1> BFree..:

为什么不用 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");

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有