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

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
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);
 

КарлМаркс

Активный пользователь
Регистрация
11.07.2017
Сообщения
200
Благодарностей
64
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с КарлМаркс какие-либо сделки.

бери 30 строк в список 2
мешай строки
верни строки из списка 2
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 107
Баллы
113
Замени
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

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Спасибо!
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 932
Благодарностей
6 389
Баллы
113
А почему после перемеса, вес файла уменьшился?

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



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

нипанятна... хотя это ж не текстовик)
 
Последнее редактирование:

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Потому что ексель ужимает его
 

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
Здравствуйте. На однопотоке все было хорошо, а на многопотоке одна ячейка таблицы после перемешивания записывается в разные ячейки с разделителем "?": 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);
}
 

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
Здравствуйте. На однопотоке все было хорошо, а на многопотоке одна ячейка таблицы после перемешивания записывается в разные ячейки с разделителем "?": 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.
 

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