উপরের লুপ সমাধানগুলির জন্য একটি সমস্যা হ'ল সমস্ত ধনাত্মক মান সহ নিম্নলিখিত ইনপুট অ্যারের জন্য, যোগফলটি নেতিবাচক:
int[] arr = new int[] { Int32.MaxValue, 1 };
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
Console.WriteLine(sum);
যোগফলটি -2147483648, কারণ ইতিবাচক ফলাফলটি ইনট ডাটা টাইপের জন্য খুব বড় এবং নেতিবাচক মান হিসাবে ওভারফ্লো হয়।
একই ইনপুট অ্যারের জন্য অ্যারেরসাম () পরামর্শগুলি একটি ওভারফ্লো ব্যতিক্রম নিক্ষেপ করে cause
আরও শক্তিশালী সমাধান হ'ল বৃহত্তর ডেটা ধরণের ব্যবহার করা যেমন "লং" এই ক্ষেত্রে "যোগফল" এর জন্য:
int[] arr = new int[] { Int32.MaxValue, 1 };
long sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
সংক্ষিপ্ত এবং এসবিট হিসাবে অন্যান্য পূর্ণসংখ্যার ডেটা সংক্রমণের জন্য একই উন্নতি কাজ করে। স্বাক্ষরযুক্ত পূর্ণসংখ্যার ডেটা যেমন ইউন্ট, ইউএসোর্ট এবং বাইটের অ্যারেগুলির জন্য, যোগফলের জন্য একটি স্বাক্ষরযুক্ত দীর্ঘ (উলং) ব্যবহার করে ওভারফ্লো ব্যতিক্রম এড়ানো যায়।
লুপ সলিউশনটির জন্য লিনাকের চেয়ে বহুগুণ দ্রুত umসুম ()
আরও দ্রুত চালানোর জন্য, এইচপিস্যাশার্প নুগেট প্যাকেজটি এই সমস্ত .সাম () সংস্করণগুলির পাশাপাশি সিমডি / এসএসই সংস্করণ এবং মাল্টি-কোর সমান্তরালগুলি প্রয়োগ করে, বহু গুণ দ্রুত পারফরম্যান্সের জন্য।