সি # তে কোনও হ্যাশসেটের জন্য কোনও অ্যাড্রেঞ্জ সমতুল্য?


305

একটি তালিকা সহ আপনি যা করতে পারেন:

list.AddRange(otherCollection);

কোনও হ্যাশসেটে অ্যাড রেঞ্জের পদ্ধতি নেই । হ্যাশসেটে অন্য সংগ্রহ যুক্ত করার সর্বোত্তম উপায় কী?

উত্তর:


545

জন্য HashSet<T>, নাম UnionWith

এটি স্বতন্ত্রভাবে HashSetকাজগুলি নির্দেশ করে। আপনি Addএলোমেলো উপাদানগুলির মতো এটির মতো নিরাপদে সেট করতে পারবেন না Collections, কিছু উপাদান প্রাকৃতিকভাবে বাষ্পীভবন করতে পারে।

আমি মনে করি এটি UnionWith"অন্যের সাথে মিশে যাওয়ার" পরে এর নামটি নিয়েছে HashSet, তবে এটির জন্য একটি ওভারলোডও রয়েছে IEnumerable<T>


9
ইমো, HashSet(এবং ISet) গাণিতিকভাবে সেট শব্দটি দিয়ে তৈরি হয়েছিল। UnionWithনিকটতম শব্দ ছিল। ছাড়া Except, যা পরিষ্কারভাবে নামকরণ করা উচিত Subtractগাণিতিকভাবে ভাষী।
এফএ ওয়াইল্ডচাইল

5

এটি একটি উপায়:

public static class Extensions
{
    public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
    {
        bool allAdded = true;
        foreach (T item in items)
        {
            allAdded &= source.Add(item);
        }
        return allAdded;
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.