ব্যক্তিগতভাবে, আমি আমার নিজস্ব ভাষা এক্সটেনশানগুলি পছন্দ করি, যা আমি দ্রুত প্রোটোটাইপিংয়ের জন্য নিজের ইচ্ছায় যুক্ত বা সরিয়ে ফেলি।
নীচে স্ট্রিং জন্য একটি উদাহরণ।
//resides in IEnumerableStringExtensions.cs
public static class IEnumerableStringExtensions
{
public static IEnumerable<string> Append(this string[] arrayInitial, string[] arrayToAppend)
{
string[] ret = new string[arrayInitial.Length + arrayToAppend.Length];
arrayInitial.CopyTo(ret, 0);
arrayToAppend.CopyTo(ret, arrayInitial.Length);
return ret;
}
}
এটি লিনকিউ এবং কনক্যাটের চেয়ে অনেক দ্রুত। তবুও, একটি কাস্টম IEnumerable
টাইপ-মোড়ক ব্যবহার করছে যা উত্তীর্ণ অ্যারেগুলির রেফারেন্স / পয়েন্টার সঞ্চয় করে এবং পুরো সংগ্রহের উপরে লুপিংকে অনুমতি দেয় যেমন এটি একটি সাধারণ অ্যারে। (এইচপিসিতে দরকারী, গ্রাফিক্স প্রসেসিং, গ্রাফিক্স রেন্ডার ...)
তোমার গোপন সংকেত:
var someStringArray = new[]{"a", "b", "c"};
var someStringArray2 = new[]{"d", "e", "f"};
someStringArray.Append(someStringArray2 ); //contains a,b,c,d,e,f
সম্পূর্ণ কোড এবং জেনেরিক সংস্করণগুলির জন্য দেখুন: https://gist.github.com/lsauer/7919764
দ্রষ্টব্য: এটি একটি অব্যক্ত IEnumerable অবজেক্টটি প্রদান করে। বর্ধিত বস্তুটি ফিরিয়ে আনতে কিছুটা ধীর গতি হয়।
আমি 2002 থেকে এই জাতীয় এক্সটেনশানগুলি সংকলন করেছি, প্রচুর ক্রেডিট কোডপ্রজেক্ট এবং 'স্ট্যাকওভারফ্লো' তে সহায়ক লোকের কাছে যাচ্ছে। আমি শীঘ্রই এগুলি প্রকাশ করব এবং লিঙ্কটি এখানে রাখব।