Само собой,
код отлично работает! (Но только который выше, который Ваш.) Теперь вникаю в Ваш код.
Самое любопытное — что у вас делает, для чего List<string> lst = new List<string>();
Ваш сниппет сложнее и интереснее, чем
сниппет столбец AQ
в список List, который пригодится перед вычитанием списков, вот он
var list = project.Lists["List"];
var table = project.Tables["Table"];
lock(SyncObjects.TableSyncer)
{
for(int i= 0; i < table.RowCount; i++)
{
list.Add(table.GetCell("AQ", i)); //Вместо "AQ" нужную колонку таблицы
}
}
Я всегда таблицу называю Table, легче понимать (учусь понимать код).
Переназвал у Вас переменную t английским словом table(таблица); переменную s переназвал cells (ячейки) и получилось вот так
Ничего не испортил? (Исправлено, но я бы не брал мой код, а брал бы WebBot's one)
Changed
WebBot's post:
var table = project.Tables["Table"]; //Вместо "Table" нужную таблицy
List<string> lst = new List<string>();
lock(SyncObjects.TableSyncer){
for(int i=table.RowCount-1; i>=0; i--){
var cells = table.GetCell("A", i)+table.GetCell("B", i);
if (lst.Contains(cells))
table.DeleteRow(i);
else
lst.Add(cells);
}
}
Hаписанное никак не могу дочитать до конца. Не всё понимаю в строчке GetCell. Стараюсь вникнуть.
1st не смог переназвать. Знаний у меня маловато.
Любопытства ради чего будет, если из кода убрать замок lock(SyncObjects.TableSyncer), он есть и в первом, и во втором сниппетах.
Ведь, думаю, всё равно работать будет.
То, что строки Вы перечисляете с конца до начала, а в первом сниппете с начала до конца, несущественно. Это понятно.
(int i= 0; i < table.RowCount; i++)
(int i=table.RowCount-1; i>=0; i--)
А чего там два минусика и два плюсика, непонятно, но видимо надо запомнить.