簡體   English   中英

哈希集 <string> 包含收藏

[英]Hashset<string>contains for collection

我正在比較兩個充滿文件名的哈希集。我已經成功實現了“ ExceptWith”,但是現在我需要獲取“兩個集中的所有文件名”的列表。

我知道哈希集有一個包含,但這意味着循環哈希集為另一項的每個項目。 想知道是否有內置方法可以做到這一點。 我正在處理文件名超過50000的文件。

非常感謝

您所說的是一個固定的交集。 為此有一個內置方法:

HashSet<string> x = new HashSet<string> { "x", "a","b"};
HashSet<string> y = new HashSet<string> { "z", "a","b"};
x.IntersectWith(y);

請注意,這會修改原始的HashSet x 如果您不想這樣做,請在Enumerable上使用擴展方法:

var intersection = x.Intersect(y);

由於最后一個定義為IEnumerable<T>的擴展,因此它也適用於更一般的情況。 請注意,它可能沒有像HashSet<T>.IntersectWith那樣對性能進行優化,因為它需要能夠在所有枚舉上工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM