14-10-12, 04:56 PM
الآن سنعود لنقطة البداية ، ال LINQ تعتمد على ان قاعدة البيانات هي عبارة عن Array أو أي جزء منها ، لذا سنجرب بعض العمليات على ال Array ، لنفترض الشكل التالي مثلاً :
*** لن اذكرك كثيراً بأنني هنا لا اهتم ب LINQ قدر ما اهتم بال Query Expressions ، الفارق هو ان الأولى خاصة بالتعامل مع قواعد البيانات بمختلف انواعها اما الثانية فهي تعلمك كيفية الكتابة فقط دون التطرق لخصائص قواعد البيانات .
هذه المصفوفة قد تكون قاعدة بيانات ، قد تكون ملف XML ، قد تكون أي شيء آخر ، الآن سنحاول بناء جملة استعلام لقراءة الاسماء التي تساوي "Ahmed"
الناتج سيكون ايضاً array ، لذا يمكنك الآن طباعتها ببساطة بالشكل التالي :
يمكنك بالطبع استخدام اي دالة من دوال C# ، لذا فالجملة التالية صحيحة لعرض الاسماء اطول من ثلاث حروف :
ايضاً قد لا تكون قادراً على معرفة نوع البيانات الظاهر ، خصوصاً لو كنت تستعلم عن اكثر من حقل حيث ان الناتج لا بد ان يكون فئة ، هنا تظهر لنا فائدة ال var أو ال Dim بدون Data Type التي شرحناها سابقاً ، ايضاً ربما لا تعود جملة الاستعلام بنتيجة لذا سنسترجع هنا فائدة ال Nullable Types والتي شرحناها ايضاً في درس سابق .
طريقة أخرى لكتابة هذه الجمل باستخدام Lambada ، وسنتعرف عليها في مرحلة قادمة .
للتحويل إلى vb.net يمكنك مراجعة دروس الأخ النبهاني ومحمد سامر سلو حول LINQ ، بصراحة لم اكن قادراً على تطبيق عملية التحويل لذا اعتذر .
كود :
string[] userNames = {"Ahmed", "Ali","Mohammed", "Ahmed","Ramy", "Khaled"};هذه المصفوفة قد تكون قاعدة بيانات ، قد تكون ملف XML ، قد تكون أي شيء آخر ، الآن سنحاول بناء جملة استعلام لقراءة الاسماء التي تساوي "Ahmed"
كود :
IEnumerable<string> subset = from users in userNames
where users == "Ahmed" orderby users select users;كود :
foreach (string s in subset)
Console.WriteLine("Item: {0}", s);كود :
IEnumerable<string> subset = from users in userNames
where users.Length > 3 orderby users select users;طريقة أخرى لكتابة هذه الجمل باستخدام Lambada ، وسنتعرف عليها في مرحلة قادمة .
للتحويل إلى vb.net يمكنك مراجعة دروس الأخ النبهاني ومحمد سامر سلو حول LINQ ، بصراحة لم اكن قادراً على تطبيق عملية التحويل لذا اعتذر .
