Вывод данных из 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д