Как удалить дубли из таблицы

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

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Реакции
53
Баллы
28
Друзья,

Разработчики конечно давно обещают внедрить опцию, но пока её нет.

Собственно вопрос. Подскажите красивое решение очистки таблицы от дублей, без перегона в список. Дело в том, что нужно удалить строки, проверив дубли по конкретному столбцу. Остальные столбцы могут быть разными.

Например есть столбец А и B. Вот нужно проверку дублей по столбцу B сделать и удалить строки дублирующие.
 
^ присоединюсь, самому нужен такой пример) А то был один код, он тупо удалял только повторы в одних столбиках, не во всей строке и все в результате перемешивалось
Нужно чтобы из

1|2|3|4| (1-первый столбец, 2 - 2ой столбец и т.д.)
  1. а б в г д
  2. а б в г д
  3. а б б г д

удалял именно полную строку со всеми столбцами если совпадает)
 
Код:
Развернуть Свернуть Копировать
var t = project.Tables["table"];
int c = 1;
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
 
  • Оценить
Реакции: alex888 и codeby
LexxWork как удалить длинные пробелы в конце строки в списке
блабла@блабла........................................... многоточие это типо пробел
блабла@блабла
и получается когда дубли удаляешь то они разные и не удаляет дубль
 
LexxWork как удалить длинные пробелы в конце строки в списке
блабла@блабла........................................... многоточие это типо пробел
блабла@блабла
и получается когда дубли удаляешь то они разные и не удаляет дубль
Trim удаляет всё это добро
 
Код:
Развернуть Свернуть Копировать
var t = project.Tables["table"];
int c = 1;
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
Поясните мне где тут вставлять столбец.
Курю уже 3 сигарету не могу понять
 
Код:
Развернуть Свернуть Копировать
var t = project.Tables["table"];
int c = 1;
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
Поясните мне где тут вставлять столбец.
Курю уже 3 сигарету не могу понять

Переменная с - это номер столбца.
 
  • Оценить
Реакции: svaminar
Ошибка в действии "CS0428" "Не удается привести группу методов "ToString" к неделегируемому типу "int". Вызов метода использовался намеренно?". [Строка: 1; Cтолбец: 9]
сам код
Код:
Развернуть Свернуть Копировать
var t = project.Tables["tables"];
int c = project.Variables["CountNumbers"].ToString;
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
Как исправить ошибку в синтасисе язика
 
Как-то так
Код:
Развернуть Свернуть Копировать
var t = project.Tables["tables"];
var c = Convert.ToInt32(project.Variables["CountNumbers"].Value);
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
 
:ah: спасибо
 
Полезный снипет, мне тоже помог, спасибо!
 
Код:
Развернуть Свернуть Копировать
var t = project.Tables["table"];
int c = 1;
for(int i=0; i<t.RowCount-1; i++){
    var s = t.GetCell(c, i);
    for(int j=0; j<t.RowCount; j++){
        if(i!=j&&t.GetCell(c, j)==s){
            t.DeleteRow(j--);
            i--;
        }
    }
}
Спасибо)
 
у меня почему то удаляет файл таблицы после использования кода, сталкивался кто?
 

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