У меня есть DataTable, и я хотел бы перебрать ячейки подряд и переместить пустые ячейки влево, чтобы ячейки с данными находились в столбцах справа, а в пустых - слева.
Это потому, что я получаю ячейку до того, как все это делаю, делю ее на запятую и помещаю вторую часть разбиения в ячейку справа от этой ячейки
Так что, если у меня есть пустая ячейка, которая будет после кода, она заполнит пустую ячейку, а не ячейку с данными в
В настоящее время у меня есть этот код, который, кажется, не работает полностью
int rowcount = 0;
numberoftruncationsneeded = 0;
foreach (DataRow row in dt.Rows)
{
int columncount = 0;
foreach (var col in row.ItemArray)
{
if (dt.Columns[columncount].Caption.Contains("Address"))
{
if (dt.Columns.Count > columncount + 1)
{
if (dt.Columns[columncount + 1].Caption.Contains("Address"))
{
if (dt.Rows[rowcount].ItemArray[columncount].ToString().Length >= 32)
{
bool isblank = false;
int blankrow = 0;
foreach (DataColumn colzer in dt.Columns)
{
if (colzer.Caption.Contains("Address") && (dt.Columns.IndexOf(colzer) >= columncount))
{
if (dt.Rows[rowcount].ItemArray[dt.Columns.IndexOf(colzer)].ToString().Trim() == "")
{
dt.Rows[rowcount][dt.Columns.IndexOf(colzer)] = dt.Rows[rowcount][dt.Columns.IndexOf(colzer) - 1].ToString();
dt.Rows[rowcount][dt.Columns.IndexOf(colzer) - 1] = "";
}
}
}
bool isbad = true;
if (isPostCode(dt.Rows[rowcount][columncount + 1].ToString()))
isbad = false;
string firstaddress = "";
string secondaddress = " ";
while (isbad == true)
{
if (firstaddress == "")
firstaddress = dt.Rows[rowcount].ItemArray[columncount].ToString();
if (!firstaddress.Contains(",") || firstaddress == "")
{
isbad = false;
break;
}
int lastspace = firstaddress.LastIndexOf(",");
var tempsecond = firstaddress.Remove(0, lastspace + 1);
firstaddress = firstaddress.Substring(0, lastspace);
secondaddress = tempsecond + " " + secondaddress;
if (firstaddress.Length < 32)
isbad = false;
}
dt.Rows[rowcount][columncount] = firstaddress;
if (firstaddress.Length >= 32)
numberoftruncationsneeded++;
var temp = dt.Rows[rowcount][columncount + 1];
dt.Rows[rowcount][columncount + 1] = secondaddress + "" + temp;
}
}
}
}
columncount++;
}
rowcount++;
}