使用HashSet避免重复是否有效?

时间:2016-07-19 11:39:50

标签: c#

public IEnumerable<string> ListFoldersInternal(IEnumerable<CloudBlobDirectory> folders)
{
    return new HashSet<string>(folders.Select(x => x.Prefix));
}

使用HashSet避免重复并返回IEnumerable是不是一个好的选择?

有任何改进此代码的想法吗?

2 个答案:

答案 0 :(得分:1)

更可读的方法可能是使用LINQ扩展Distinct

return folders.Select(x => x.Prefix).Distinct();

它以类似的方式实现(使用自己的剪切哈希集),虽然它懒惰地评估(在返回每个唯一项后产生)。

答案 1 :(得分:0)

使用Hashset是个好主意,绝对是避免重复的有效方法。 MSDN说:

  

HashSet<T>类提供高性能的集合操作。一套   是一个不包含重复元素的集合,其中包含   元素没有特别的顺序。

如果你想要,你也可以使用LINQ

List<T> myList = ......;
List<T> removeDuplicates = myList.Distinct().ToList();