مشخصات مقاله
-
1035
-
0.0
-
2525
-
0
-
0
آموزش عملیات Set در Linq
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
عملیات Set
عملیات Set در LINQ به عملیات پرس و جویی اشاره دارد که خروجی آن یک مجموعه نتیجه است که بر اساس حضور یا عدم حضور المان های معادل (متناظر) در همان مجموعه یا مجموعه ی دیگر تعیین می شود.
در زیر عملگرهایی که به صورت متد برای انجام عملیات Set فراخوانی می شوند، شرح داده شده است.
|
اسم متد |
شرح |
ساختار نگارشی/ سینتکس عبارت کوئری در زبان C# |
ساختار نگارشی عبارت کوئری در زبان ویژوال بیسیک |
اطلاعات بیشتر |
|
Distinct |
مقادیر تکراری را از یک مجموعه حذف می کند. |
قابل اجرا و پشتیبانی نمی باشد. |
Distinct |
Enumerable.Distinct Queryable.Distinct |
|
Except |
. تفاوت بین دو مجموعه را برمی گرداند. به عبارتی دیگر المان هایی که در یک مجموعه حضور دارند ولی در مجموعه ی دوم موجود نیستند را واکشی می کند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.Except Queryable.Except |
|
Intersect |
المان هایی که در هر دو مجموعه وجود دارند و در واقع بین دو مجموعه مشترک هستند را برمی گرداند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
|
|
Union |
المان هایی که در هر مجموعه یکتا هستند را برمی گرداند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.Union Queryable.Union |
مقایسه ی عملیات Set
Distinct
تصویر زیر رفتار (عملکرد) متد Enumerable.Distinct<TSource> را نمایش می دهد. در این تصویر (با توجه به رفتار عملگر مزبور) تنها المان هایی که غیر تکراری هستند در نتیجه نمایش داده شده اند. .
Except
تصویر زیر رفتار Enumerable.Except<TSource> را به نمایش می گذارد. همان طور که مشاهده می کنید، خروجی تنها المانی را از مجموعه ی اول شامل می شود که در مجموعه ی (ورودی) دوم حضور ندارد.
Intersect
تصویر زیر رفتار Enumerable.Intersect<TSource> را نمایش می دهد. همان طور که مشاهده می کنید المان هایی که بین دو مجموعه ی ورودی مشترک هستند به عنوان خروجی برگردانده شده اند.
Union
تصویر زیر عملیات اتحاد را نشان می دهد که بر روی دو مجموعه کاراکتر انجام شده است. دنباله یا مجموعه ای که به عنوان خروجی دریافت می شود تنها المان های یکتا در هر مجموعه (المان هایی که در هر مجموعه غیر تکراری و تک هستند) را دربرمی گیرد.
مثال
نمونه ی زیر با استفاده از دستور Distinct (قابل استفاده فقط در ویژوال بیسیک) در کوئری LINQ، اعداد غیر تکراری را از یک لیست اعداد صحیح (integer) واکشی می کند.
Dim classGrades = New System.Collections.Generic.List(Of Integer) From {63, 68, 71, 75, 68, 92, 75}
Dim distinctQuery = From grade In classGrades
Select grade Distinct
Dim sb As New System.Text.StringBuilder("The distinct grades are: ")
For Each number As Integer In distinctQuery
sb.Append(number &" ")
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' The distinct grades are: 63 68 71 75 92