ما الفرق بين Length وCount

بسم الله الرحمن الرحيم

ما الفرق بين Length و Count في الـ.NET ؟

أعلم أن Length خاصية و Count دالة ولكن كلاهما يقوم بإرجاع نفس القيمة وهي طول المصفوفة فهل هناك فرق سواء وظيفي أو نظري بينهما ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

بما أننا نتعامل مع أصناف تحاكي الأشياء في الواقع فكان الحرص على استخدام نفس المسميات المستخدمة في الواقع وإن كانت برمجيا تعبر عن نفس الأمر

فكلمة Length تعبر عن طول ولأن المصفوفة ومن ضمنها النوع string الذي هو مصفوفة أحرف فقد تم استخدام طول السلسلة كما في الواقع والذي يفترض أن يكون بواحدة الطول وهو المتر أو الإنش أو غيرها لكن واحدة الطول في السلسلة الرمزية هي الحرف وفي المصفوفة هي الحجرة

أما Count فتجدها كخاصية في الأنواع الجمعية معلومة العدد في لحظة الفحص مثل List و Dictionary و غيرها

لكن في الأنواع الجمعية التي تخضع لاستفسارات Linq و لكونها تكون مجرد استفسارات وليست كائنات حقيقية إلا حين الحاجة لزيارة عناصرها فإن استفسارات Linq هي مناهج موسعة وحيث لا يمكن إضافة خصائص موسعة لهذا تجد كل الاستفسارات هي مناهج ومن ضمنها الاستفسار عن العدد

كمثال لو كان لديك كائن من النوع IQuerable والذي يمثل استفسار سيكوال فعد استدعاء دالة Count لا يتطلب تجسيد كل العناصر في الذاكرة ليقوم بعدها وإنما يكفيه أن يرسل الاستفسار إلى قاعدة البيانات ليعود برقم واحد وهو العدد أي أن معرفة العدد ليست قيمة خاصية وإنما هو عملية استفسار

الحقيقة لم ابرمج بالدوت نت لكن وجدت شرح في stackoverflow

Length: Total number of elements in an array
Count(): LINQ extension method that works with other collection types as well

نعم قرات هذا الشرح لكن لم أفهم الجزء الخاص بـ Count

تبسيط :

اذا كنت تستخدم Array ف Length هى احد خواص ال Array

أما اذا كنت تستخدم نوع Collection اخر فلا يوجد لديها خاصية Length ولكن يوجد Count .

مع ذلك فان ال Array متوفر لها كلا من Length و Count ولكن يفضل عند حساب عناصر ال Array استخدام Length لان Count مكلفة (تستخدم موارد ووقت أطول) .