System.Data.DataTable函数的区别

时间:2014-02-18 20:23:15

标签: c# datatable copy

试图弄清楚这两行代码之间的区别。他们似乎做了同样的事情,但我担心我会遗漏一些可能会在未来发生变化的事情。哪个是正确使用设置数据表?

我将把这个数据表用于我的例子

System.Data.DataTable dtExample = new System.Data.DataTable();

这两种方法似乎给了我同样的东西......

dtExample = Function.GetURLTable(); // Function which returns a new System.Data.DataTable object.

// or

dtExample = Function.GetURLTable().Copy(); 

2 个答案:

答案 0 :(得分:2)

这将创建一个没有列的空表,其中包含默认构造函数(请注意new):

System.Data.DataTable dtExample = new System.Data.DataTable();

这使用你的函数返回一个完全初始化和填充的(?)表:

dtExample = Function.GetURLTable();

这使用相同的函数和DataTable.Copy来创建具有相同模式和数据的克隆:

dtExample = Function.GetURLTable().Copy(); 

最后一点是毫无意义的,因为它创造了无效的副本。

第一个不相关,因为它只使用默认构造函数。如果您使用GetURLTable来获取该表,则这是多余的。

所以没有更多细节,这似乎是最合适的:

System.Data.DataTable dtExample = Function.GetURLTable();

答案 1 :(得分:0)

从我所知道的,看起来第一行只调用你的函数,然后将它分配给dt,但第二行是因为.Copy,调用函数但是然后创建你刚刚创建的dt的精确副本然后把它分配到那里。差不多,第二种方式使用的内存/存储量是第一种方式的两倍;除非您想对表进行更改并仍保留初始数据表,否则请勿使用。