2009-02-05 3 views
3

Надеюсь, кто-то может мне помочь. Я использую C#, и я немного новичок в этом. Я загружаю текстовый файл в свое приложение и разделяю данные на "," Я читаю часть строки в <list>, когда данные читаются, существует много дубликатов, которые различаются в зависимости от загружаемого файла txt. Может кто-нибудь сказать мне, как проверить и удалить все и все дубликаты, которые появляются. Нет никакого способа узнать, какие дубликаты появятся, поскольку есть бесконечные возможности, которыми это могло бы быть.Удаление дубликатов из списка

Спасибо за помощь заранее

ответ

1

Here's статья с некоторыми примерами и пояснениями в C#. В принципе, вы просто отслеживаете уникальность и проверяете каждый элемент.

Alex

+0

Я пытаюсь сделать это таким образом, но получаю сообщение об ошибке, которое говорит «Ошибка \t Не удается неявно преобразовать тип System.Collections.Generic.IEnumerable » на „System.Collections.Generic.IEnumerable “. An Явное преобразование существует (вы пропускаете листинг?) \ Projects \ HKstats \ HKstats \ stats.v1.01.cs – 2009-02-11 22:44:57

4

При загрузке строки в Set вместо в List затем дублирует отбрасываются автоматически.

+0

Устанавливайте звуки хорошо - но я бы проверял стратегию, которую он использует для разных. Надеюсь, это хеширование с помощью o (1) характеристики, если он использует перечисление перечислений с o (n) - переключится на использование словаря и вместо этого использует значение null для значения. – stephbu

+0

Я понимаю, что он хеширует (и эквивалентно «Словарь» ключей без связанных значений). – ChrisW

7

Если вы ориентируетесь .NET 3.5, используйте Distinct метод расширения:

var deduplicated = list.Distinct(); 
2

Простой/грязный пример следующим образом:

public List<string> RemoveDuplicates(List<string> listWithDups) 
{ 
    cleanList = new List<string>(); 
    foreach (string s in listWithDups) 
    { 
     if (!cleanList.Contains(s)) 
     cleanList.Add(s); 
    } 
    return cleanList; 
} 

В качестве предупреждения: String.split на очень больших строк может привести к огромному объему памяти и вызвать исключения.

Смежные вопросы