اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

قد نحتاج في بعض الأحيان إجراء عملية جمع لعدد من العناصر التي تحقق شرطًا معينًا،

على سبيل المثال نفترض لديك مصفوفة من الأعداد الصحيحة، وتريد جمع كل العناصر الأكبر من قيمة معينة.

        private static int GetSalary(int originSalary)
        {
            if (originSalary >= 1000)
            {
                return originSalary;
            }
            return 0;
        }

        static void Main(string[] args)
        {
            int[] allSalaries = new int[] { 500, 950, 1200, 750, 2400 };
            //السطر التالي نقوم بجمع الرواتب التي أكبر من أو تساوي 1000 لأننا نفذنا الوظيفة
            // Sum
            // على العناصر التي تعود من الوظيفة
            // GetSalary
            int salariesGreaterThan_1000 = allSalaries.Sum(GetSalary);
            Console.WriteLine(salariesGreaterThan_1000);
        }

لاحظ أن المصفوفة لديها وظيفة الجمع Sum والتي تحتاج معامل عبارة عن وظيفة أخرى (في حالتنا GetSalary)، فتقوم بتمرير كل عنصر إلى هذه الوظيفة GetSalary والتي بدورها تقوم بإعادة نقس الراتب أو تعيد صفرًا إذا كان أقل من 1000.

ملحوظة: يمكننا استخدام الوظائف الغير معرفة Anonymous function مباشرة داخل الوظيفة Sum لتؤدي نفس الغرض

            int salariesGreaterThan_1000 = allSalaries.Sum(itm => itm < 1000? 0 : itm);

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...