【问题标题】:How to remove empty values in a DataTable rows and merge如何删除 DataTable 行中的空值并合并
【发布时间】:2016-08-13 14:15:30
【问题描述】:

我正在尝试找出一种从行中删除空值并将row2 合并到row1row4row2 在数据表中的好方法。

要合并的空行数据表

      ---------------------
      | Column1 | Column2 | 
      ----------------------
ROW1  | XYZ     |          |       
ROW2  |         | ABC      | 
ROW3  | MNQ     |          |
ROW4  |         | PQR      |

合并行的最终数据表

      _____________________
      | Column1 | Column2 | 
      ----------------------
ROW1  | XYZ    |  ABC     |       
ROW2  | MNQ    |   PQR    |

有人可以帮我在 C# 中完成这个吗?

【问题讨论】:

  • 它会一直是空的吗?如果第 5 行和第 6 行有 Column1 但没有第 2 列怎么办?
  • 是的。它总是空的

标签: c# asp.net datatable


【解决方案1】:

尝试创建两个数组来存储 column1 值和 column2 值。 在循环中遍历所有数据表行并将所有非空行从 column1 插入到 array1 并将行从 column2 插入到 array2。然后最后创建新的数据表,该数据表将具有从 array1 和 array2 中获取的行。 例如在伪代码中。

    var array1;
    var array2;
    for(var row in datatable)
    {
      if(row[column1] != null or empty)array1.push(row[column1].value);
      if(row[column2] != null or empty)array2.push(row[column2].value);
}

最后(首先检查哪个数组更大)。例如我假设array1更大;

var newDatatable;

for(int i=0; i<array1.count; i++)
{
var row = new row;
newDatatable.row[column1].addRowValue(array1[i])
if(array2.count < i){
newDatatable.row[column2].addRowValue(array2[i])
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多