2016-08-13 3 views
0

Я пытаюсь выяснить, хороший способ, чтобы удалить пустые значения из строк и объединить row2 в row1, row4 к row2 в DataTable.Как удалить пустые значения в DataTable строк и объединить

DataTable с пустыми строками, чтобы объединить

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

Окончательная DataTable с объединяемых строк

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

Может кто-нибудь помочь мне сделать это в C#?

+0

Будет ли это альтернативно пустым всегда? Что делать, если строки 5 и 6 имеют столбец 1, но нет столбца 2? – Shyju

+0

yes.it альтернативно пуст всегда –

ответ

0

Попробуйте создать два массива, которые будут хранить значение столбца1 и значение столбца2. В цикле пройдите все строки данных и вставьте все непустые строки из столбца1 в массив1 и строки из столбца2 в массив2. Затем на конце создайте новый datatable, который будет иметь строки, полученные от 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); 
} 

и в конце концов (в первую очередь проверьте, что массив Biger) .Для пример я предполагаю, что 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]) 
} 

}