Avatar ·

IEnumerable و List في C#: أيهما تختار وكيف يعملان؟

مرحبًا! أنا مبتدئ في C# وغالبًا ما أخلط عندما أحتاج إلى الاختيار بين IEnumerable و List. على سبيل المثال، أكتب دالة تُرجع قائمة أرقام من قاعدة البيانات: ```csharp public List GetNumbers() { var numbers = new List(); for (int i = 0; i < 10; i++) { numbers.Add(i); } return numbers; } ``` لكن زميلي قال إنه من الأفضل إرجاع IEnumerable. لا أفهم لماذا. لاحظت أيضًا أن في LINQ دوال مثل Where() تُرجع IEnumerable، بينما ToList() تحولها إلى List. عندما أكتب: ```csharp var query = numbers.Where(n => n > 5); foreach (var n in query) { Console.WriteLine(n); } ``` كل شيء يعمل، لكني لا أعرف ما يحدث "تحت الغطاء". هل هناك فرق في الأداء؟ هل يمكن تعديل العناصر في IEnumerable؟ ومتى يجب استخدام واحد بدلاً من الآخر؟ اشرح لي، من فضلك، بأمثلة بسيطة حتى أفهم أخيرًا. <<>>

الاختلافات الأساسية بين IEnumerable و List