public IEnumerable<string> ListFoldersInternal(IEnumerable<CloudBlobDirectory> folders)
{
return new HashSet<string>(folders.Select(x => x.Prefix));
}
使用HashSet
避免重复并返回IEnumerable
是不是一个好的选择?
有任何改进此代码的想法吗?
答案 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();