الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث عن الاختلافات بين لائحتين بواسطة ال Linq

مغلق
بدأه Ayoub JAMAL EL IDRISSI في 29 ديسمبر 2007 · 0 رد · 1,360 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

مقدمة :

في الدروس السابقة تعاملنا مع نصوص عادية بواسطة ال LINQ فكنا مثلا فيالمثال الأول نقومبمعالجة النصوص اعتمادا على دوال معينة مثل Split ذاك ان النصوص لم تكن منظمة أما الآن فسوف نتعامل مع نصوص Semi-Structured يعني انها في تنظيم معين مثلا النصوص التي سنتعامل معها تكون في Blocks و مفصولة بفاصل موحد مثلا ال vbcrlf(العودة للسطر) او Tabulation أو شئ المهم أنه يكون موحد فمثلا في مثالنا اليوم سيكون الفاصل هو ال vbcrlf و سوف نرى كيف اننا لن نحتاج لل Split لتتعامل مع البيانات .

مستلزمات الكود :

إنشاء نصين:

الأول نسمه List1.txt و يكون محتواه كالتالي :

1
25
41
255
14
541
474
51
25
ayoub
sf
47

الثاني اسمه List2.txt و فيه :

11
45
1
255
64
51
474
5
25
ayoub
sfhg
4

انشأ مشروع جديد من نوع Console Application

استيراد :

Imports System.LINQ
Imports System.IO

الكود :

 

Dim List1 As String() = File.ReadAllLines("c:\list1.txt")
Dim List2 As String() = File.ReadAllLines("c:\list2.txt")
Dim DifferenceQuery = List1.Except(List2)
Console.WriteLine("Elements That are in the List1 and not in List2")
For Each Element In DifferenceQuery
Console.WriteLine(Element)
Next
Console.ReadKey()

شرح الكود :

السطرين الأولين قمنا فيهما بوضع محتويات النصين الذان أنشأناهما في متغيرين و و بالتحديد في Arrays فالدالة ReadAllLines ترجع Array وطبعا يتم التقسيم آليا على حسب الجوع للسطر يعني كل Element من ال Array المعادة يكون سطر من النص وبهذا فالمتغيرين List1 و List2 يحتويان على الأسطر الموجودة في النصين.

بعد ذلك نقوم بعمل ال Query و هي :

List1.Except(List2)

أعرف ما يدور في خلدك الآن ، أنت تقول ماهذا ؟؟؟ نحن عهدنا ال Queries على شكل

From <element> in <collection > where <condition>

الجواب هو هناك أنواع من ال Queries تكون بهذا الشكل ومنها ال Union,Destinct.

المهم الآن نقوم بتنفيذ ال Query عن طريق ال For Each

اقتباس
For Each Element In DifferenceQuery

Console.WriteLine(Element)

Next

حيث يتم وضع النتائج في ال Console Window.

و بهذا نكون قد أنهينا مثالنا

خاتمة :

هذه الأمور قد دون معنى خصوصا أننا لم نوضفها في أمثلة واضحة أكثر لكن تأكد انها ستنفعك كثيرا

هذا الموضوع مغلق.

مواضيع مشابهة