مشخصات مقاله
-
1165
-
0.0
-
2583
-
0
-
0
آموزش بخش بندی کردن داده ها در Linq
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
بخش بندی کردن داده ها (Partitioning)
بخش بندی یا به انگلیسی Partitioning به عملیاتی اشاره دارد که در آن دنباله ی ورودی (منبع داده) بدون اینکه المان های آن مجددا ترتیب دهی شود، به دو بخش مختلف تقسیم شده و در نهایت یکی از بخش ها در خروجی بازیابی گردد. به بیان روشن تر با استفاده از بخش بندی می توان نتیجه ی دستور پرس و جو را بخش بندی کرد.
تصویر زیر نتیجه ی سه عملیات مختلف بخش بندی بر روی یک دنباله از کاراکترها را نمایش می دهد. همان طور که مشاهده می کنید اولین عملیات، سه المان اول دنباله را به عنوان خروجی واکشی می کند. عملیات دوم سه المان اول از منبع را حذف کرده و باقی کاراکترها را بیرون می کشد. عملیات سوم دو المان اول را حذف و سه المان بعدی آن را استخراج می کند.
در زیر عملگرها بخش بندی با شرح عملکرد به نمایش در آمده است.
|
اسم عملگر |
شرح |
نحوه ی استفاده از آن در زبان C# |
نحوه ی استفاده از آن در زبان VB |
اطلاعات بیشتر |
|
Skip |
المان های یک مجموعه را به تعداد مشخص شده از اول حذف کرده و در خروجی لحاظ نمی کند. |
پشتیبانی نمی شود. |
Skip |
Enumerable.Skip(Of TSource) Queryable.Skip(Of TSource) |
|
SkipWhile |
مادام اینکه شرط (مشخص شده در تابع) برقرار است المان ها را در خروجی لحاظ می کند. |
پشتیبانی نمی شود. |
Skip While |
Enumerable.SkipWhile Queryable.SkipWhile(Of TSource) |
|
Take |
المان های مجموعه را از اول تا مکان مشخص شده گرفته و در خروجی لحاظ می کند. |
پشتیبانی نمی شود. |
Take |
Enumerable.Take(Of TSource) Queryable.Take(Of TSource) |
|
TakeWhile |
درست برعکس SkipWhile عمل می کند. بر اساس شرط مشخص شده در تابع المان ها را برمی گرداند تا زمانی که دیگر شرط برقرار نباشد. |
پشتیبانی نمی شود. |
Take While |
Enumerable.TakeWhile Queryable.TakeWhile(Of TSource) |
مثال
Skip
مثال زیر با استفاده از عبارت Skip در زبان VB، چهار رشته ی اول را نادیده گرفته و باقی المان ها را در خروجی لحاظ می کند.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip 4
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' keeps
' the
' doctor
' away
SkipWhile
کد زیر با بهره گیری از دستور SkipWhile در زبان VB، رشته هایی را که حرف اول آن ها "a" می باشد، در خروجی لحاظ نمی کند.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip While word.Substring(0, 1) = "a"
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' day
' keeps
' the
' doctor
' away
Take
کد زیر با استفاده از عبارت Take در زبان VB، تنها دو المان اول آرایه را گرفته و در خروجی بازیابی می کند.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take 2
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
TakeWhile
دستور زیر تنها آن المان هایی را در خروجی لحاظ می کند که طول یا تعداد کاراکترهای آن ها برابر با 5 یا کمتر باشد.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take While word.Length <6
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
' a
' day
' keeps
' the