একজন সহকর্মী আমাকে আজ জিজ্ঞাসা করলেন কীভাবে কোনও সংকলনে একটি ব্যাপ্তি যুক্ত করতে হয়। তার একটি বর্গ রয়েছে যা থেকে উত্তরাধিকার সূত্রে প্রাপ্ত Collection<T>। ইতিমধ্যে কিছু আইটেম রয়েছে যে ধরণের একটি প্রাপ্য সম্পত্তি আছে। তিনি অন্য সংগ্রহের আইটেমগুলি সম্পত্তি সংগ্রহের সাথে যুক্ত করতে চান। তিনি কীভাবে সি # 3- বান্ধব ফ্যাশনে এটি করতে পারেন? (কেবলমাত্র প্রাপ্ত সম্পত্তি সম্পর্কে সীমাবদ্ধতাটি লক্ষ্য করুন, যা ইউনিয়ন করা এবং পুনরায় নিয়োগের মতো সমাধানগুলি প্রতিরোধ করে))
অবশ্যই, সম্পত্তি সঙ্গে একটি ভবিষ্যদ্বাণী। অ্যাড কাজ করবে। তবে একটি List<T>স্টাইলের অ্যাড্রেঞ্জ আরও বেশি মার্জিত হবে।
এটি একটি এক্সটেনশন পদ্ধতি লিখতে যথেষ্ট সহজ:
public static class CollectionHelpers
{
public static void AddRange<T>(this ICollection<T> destination,
IEnumerable<T> source)
{
foreach (T item in source)
{
destination.Add(item);
}
}
}
তবে আমার অনুভূতি আছে যে আমি চাকাটি নতুন করে আনছি। আমি কিছুই অনুরূপ খুঁজে পাইনি System.Linqবা morelinq ।
খারাপ ডিজাইন? শুধু কল অ্যাড? সুস্পষ্ট অনুপস্থিত?
ICollection<T>একটি Addপদ্ধতি আছে বলে মনে হয় না । msdn.microsoft.com/en-us/library/… তবে Collection<T>একটি আছে।
Add(T item)প্রথম স্থান অধিকার করেছেন? একটি একক আইটেম যুক্ত করার সক্ষমতা প্রদানের জন্য অর্ধ-বেকড পদ্ধতির মতো মনে হচ্ছে এবং তারপরে একবারে একাধিক সংখ্যক যোগ করার জন্য সমস্ত কলার পুনরাবৃত্তি করবে। আপনার বক্তব্য অবশ্যই সত্য IEnumerable<T>তবে আমি ICollectionsএকাধিক অনুষ্ঠানে নিজেকে হতাশ পেয়েছি । আমি তোমার সাথে একমত নই, শুধু বেরোচ্ছে।