Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将一个数据列的值复制到同一数据表C#中的另一个数据列中?_C#_Datatable - Fatal编程技术网

如何将一个数据列的值复制到同一数据表C#中的另一个数据列中?

如何将一个数据列的值复制到同一数据表C#中的另一个数据列中?,c#,datatable,C#,Datatable,我想将数据表的itemarray[4]复制到该数据表的itemarray[6]。我使用了此代码,但没有看到任何更改: foreach (DataRow dr_row in dt_table.Rows) { foreach (var field_value in dr_row.ItemArray) { object cell_data = field_value; if (dr_row.ItemArray[6].ToString() == "")

我想将数据表的
itemarray[4]
复制到该数据表的
itemarray[6]
。我使用了此代码,但没有看到任何更改:

foreach (DataRow dr_row in dt_table.Rows)
{
    foreach (var field_value in dr_row.ItemArray)
    {
        object cell_data = field_value;
        if (dr_row.ItemArray[6].ToString() == "")
        {
            dr_row.ItemArray[6] = dr_row.ItemArray[4];
        }
        original_data += cell_data.ToString();
    }
    original_data += Environment.NewLine;
}
试试这个

 foreach (DataRow dr_row in dt_table.Rows)
  {
     dr_row[6] = dr_row[4];
  }
并使用
System.Text.StringBuilder
附加数据

 System.Text.StringBuilder sb = new StringBuilder();
 sb.Append(value1);

首先,不要这样做:

dr_row.ItemArray[6].ToString() == ""
将其更改为:

dr_row.ItemArray[6].ToString() == String.Empty
或:

然而,这只是一种良好的做法。现在,谈谈你面临的问题

Itemarray
所做的是,它从行中创建一个新数组,这样,如果更改数组,就不会更改行

这样做:

dr_row[6] = dr_row[4];

应该有效。

为什么你永远都不应该这样做==“”?主要原因是可读性,但你可以对此争论。第二个原因是,当在程序集中使用“”或“”作为字符串对象时,如果在代码的每一部分中使用“”,它仍然是同一个对象,那么如果字符串对象中有一个静态对象,该如何创建新对象呢?
dr_row[6] = dr_row[4];