Вывод данных из DataTable отсортированное по столбцу - C#
Формулировка задачи:
Привет всем!
есть DataTable с данными, примерно такая табличка
всю голову поломал уже, никак не могу вывести её в текстовый документ отсортированной по 2-му столбцу
надо вот так примерно
пробовал ставить счетчик при выводе, но никак не могу допереть как вывести все строки по порядку...
может как нибуть можно данные отсортировать в самой DataTable(рыл в эту сторону, гугл непомог)
подкинте идею, спасибо заранее
вышло как так, есть у кого идеи, сделать это проще и быстрее?
15 5 8 6 9 78 14 6 58 4 8 6 20 2 3 56 4 5 ... 21 2 3 6 5 89
20 2 3 56 4 5 21 2 3 6 5 89 15 5 8 6 9 78 ... 14 6 58 4 8 6
решил задачу цыклом в цыкле, со сбросом первого цыкла, выполняется долго, но работает
int i=0;
int flag = 0;
for(i = 0; i <Table.Rows.Count; i++)
{
if (flag == Convert.ToInt32(Table.Rows[ii][1]))
{
writer.Write();
}
if (ii == Table.Rows.Count - 1 && flag < 100)
{
flag++;
ii = 0;
}
}Решение задачи: «Вывод данных из DataTable отсортированное по столбцу»
textual
Листинг программы
case 0:
writer.Write(string.Format("//-----------------------------------------------------------------------------------{0}// Guard/NPC{1}//-----------------------------------------------------------------------------------{2}{3}{4}", Environment.NewLine, Environment.NewLine, Environment.NewLine, 0, Environment.NewLine));
DataRow[] rows = TableGuardNPC.Select("", "Map");
int n = -1;
foreach (DataRow row in rows) //из каждой строки таблицы
{
string mapName = string.Empty;
getMobNameByID(row.ItemArray[0].ToString());
int map = (int)row.ItemArray[1]; // получаем id нужного нам коментария
if (n < map && n != map)
{
int count = 0;
foreach (Object obj in myAL)
{
if (myAL[count].ToString().StartsWith(map.ToString()) == true)
{
mapName = myAL[count].ToString().Substring(myAL[count].ToString().IndexOf(" ", 0) + 1);
break;
}
else
count++;
}
n = (int)row.ItemArray[1]; // увеличиваем значение id для следующего коментария
writer.WriteLine("// " + mapName); // выводим коментарий
}
string s = string.Join("\t", row.ItemArray); //формируем строку для вывода в файл
//s += "\t//" + nameMob;
writer.WriteLine(s); //и выводим строку в файл
}
writer.Write("end" + Environment.NewLine);
break;