c# перемешать строки таблицы от N-ой и до конца

  • Автор темы Автор темы daymos
  • Дата начала Дата начала

daymos

Client
Регистрация
11.11.2009
Сообщения
807
Реакции
241
Баллы
43
Есть сниппет, который перемешивает все строки !таблицы. Как сделать что бы мешал от 30-ой до конца?

Код:
Развернуть Свернуть Копировать
var table = project.Tables["source"];
var tmplist = new List<IEnumerable<string>>();
while(table.RowCount > 0){
tmplist.Add(table.GetRow(0));
table.DeleteRow(0);
}
tmplist.Shuffle();
foreach(var list in tmplist)
table.AddRow(list);
 
бери 30 строк в список 2
мешай строки
верни строки из списка 2
 
Замени
C#:
Развернуть Свернуть Копировать
while(table.RowCount > 0){
tmplist.Add(table.GetRow(0));
table.DeleteRow(0);
}
на
C#:
Развернуть Свернуть Копировать
for (int i = 30; i < table.RowCount;) {
    tmpList.Add(table.GetRow(i));
    table.DeleteRow(i);
}
 
  • Оценить
Реакции: daymos
А почему после перемеса, вес файла уменьшился?

был 60кб, стал 53, хотя по идее количество инфы не изменилось

eAO19lwixRWLLm.jpg


сделал еще раз, разница 1 кб
с 52 до 53 кб

нипанятна... хотя это ж не текстовик)
 
Последнее редактирование:
Здравствуйте. На однопотоке все было хорошо, а на многопотоке одна ячейка таблицы после перемешивания записывается в разные ячейки с разделителем "?": https://serp-nash.com/ftp/155614118586_kiss_19kb.png. Определила, что русская буква "с" заменяется на знак вопроса и вместо нее происходит перенос оставшихся данных в соседнюю ячейку. По-моему, это какая-то дичь.
Кто-то сталкивался с таким? Почему так происходит, как исправить?
Использую код:
Код:
Развернуть Свернуть Копировать
lock (SyncObjects.TableSyncer){
var table = project.Tables["Услуги"];
var tmplist = new List<IEnumerable<string>>();
for (int i = 1; i < table.RowCount;) {
    tmplist.Add(table.GetRow(i));
    table.DeleteRow(i);
}
tmplist.Shuffle();
foreach(var list in tmplist)
table.AddRow(list);
}
 
Здравствуйте. На однопотоке все было хорошо, а на многопотоке одна ячейка таблицы после перемешивания записывается в разные ячейки с разделителем "?": https://serp-nash.com/ftp/155614118586_kiss_19kb.png. Определила, что русская буква "с" заменяется на знак вопроса и вместо нее происходит перенос оставшихся данных в соседнюю ячейку. По-моему, это какая-то дичь.
Кто-то сталкивался с таким? Почему так происходит, как исправить?
Использую код:
Код:
Развернуть Свернуть Копировать
lock (SyncObjects.TableSyncer){
var table = project.Tables["Услуги"];
var tmplist = new List<IEnumerable<string>>();
for (int i = 1; i < table.RowCount;) {
    tmplist.Add(table.GetRow(i));
    table.DeleteRow(i);
}
tmplist.Shuffle();
foreach(var list in tmplist)
table.AddRow(list);
}
Дело было в плагине таблиц WP.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)