Отличное значение с использованием хеш-таблицы - PullRequest
2 голосов
/ 08 января 2012

Я делаю разные значения, когда как цикл по списку значений или полей.

Dictionary<string, int> _ddistinctValues = new Dictionary<string, int>();

foreach(string _word in _words) {
 if(!_ddistinctValues.ContainsKey(_word)) {
    _ddistinctValues.Add(_word, 1);
 }
}

Есть ли лучшие способы сделать это без сохранения целочисленного значения "1" для экономии места? Я использую хеш-таблицу, чтобы получить различные значения быстрее. Может быть, хэшировать слово без значения, просто разные ключи? Есть ли в C # класс, который может это сделать?

Это не большая проблема. Просто интересно.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 08 января 2012

Просто используйте LINQ и позвоните Distinct() в списке. Возможно, вы захотите выбросить результаты в другой список.

var distinctWords = _words.Distinct().ToList();

Это будет внутренне использовать HashSet<T> для определения уникальности, которая будет интересующей вас коллекцией.

1 голос
/ 08 января 2012

Вы ищете HashSet<string>.

1 голос
/ 08 января 2012

Да, HashSet - это класс для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...