مشخصات مقاله
-
1350
-
0.0
-
3683
-
0
-
0
آموزش مرتب سازی داده ها در Linq
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
عملیات مرتب سازی داده ها (sorting)
عملیات sorting عبارت است از مرتب نمودن المان های یک دنباله بر اساس یک یا چند خصیصه (attribute). اولین معیار مرتب سازی، المان ها را بر اساس مثلا خصیصه ی length (طول هر رشته) sort می کند. با مشخص کردن معیار دوم برای مرتب سازی، المان های sort شده بر اساس معیار اول را بار دیگر (این بار بر مبنای معیار دوم) داخل هر گروه مرتب شده، مرتب سازی می شوند.
تصویر زیر عملیات مرتب سازی به ترتیب حروف الفبا را بر روی دنباله ای از حروف کاراکترها نمایش می دهد.
عملگرهای متعارف SQL که به صورت متد برای مرتب سازی داده ها بکار گرفته می شوند، در جدول زیر فهرست شده است:
|
نام متد |
شرح |
ساختار نگارشی/سینتکس عبارت کوئری در زبان C# |
ساختار نگارشی عبارت کوئری در زبان ویژوال بیسیک |
اطلاعات بیشتر |
|
OrderBy |
مقادیر را به صورت صعودی مرتب سازی می کند. |
orderby |
Order By |
Enumerable.OrderBy Queryable.OrderBy |
|
OrderByDescending |
مقادیر را به صورت نزولی مرتب سازی می نماید. |
orderby …descending |
Order By …Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
|
ThenBy |
نتیجه ی عملیات مرتب سازی اول را بار دیگر به صورت صعودی مرتب می کند (در واقع یک مرتب سازی ثانویه انجام می دهد). |
orderby …, … |
Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
|
ThenByDescending |
نتیجه ی عملیات مرتب سازی اول را بار دیگر بر صورت صعودی مرتب سازی می کند. |
orderby …, …descending |
Order By …, …Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
|
Reverse |
ترتیب المان های یک مجموعه را معکوس می کند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.Reverse Queryable.Reverse |
مثال
نمونه هایی از مرتب سازی اولیه (بر اساس معیار اول): مرتب سازی اولیه به صورت صعودی
مثال زیر نحوه ی استفاده از دستور orderby در کوئری های LINQ را برای مرتب سازی المان های آرایه که از نوع رشته هستند بر اساس طول آن ها (تعداد کاراکترهای رشته) و به صورت صعودی، نمایش می دهد.
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string>query = from word in words
orderby word.Length
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
brown
jumps
*/
مرتب سازی اولیه به صورت نزولی
مثال بعدی نحوه ی استفاده از دستور orderby descending را برای مرتب سازی المان های آرایه (که از نوع رشته هستند) بر اساس اولین حرف آن ها و به صورت نزولی، نمایش می دهد.
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string>query = from word in words
orderby word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
quick
jumps
fox
brown
*/
نمونه هایی از مرتب سازی ثانویه (بر اساس معیار دوم): مرتب سازی ثانویه به صورت صعودی
در مثال زیر به وسیله ی دستور orderby عملیات مرتب سازی اولیه و ثانویه بر روی المان های آرایه از نوع رشته اجرا می کنیم. ابتدا رشته ها بر اساس خصیصه ی طول (تعداد کاراکترهای رشته) sort می شوند، سپس بر مبنای معیار دوم (اولین حرف از هر رشته) بار دیگر مرتب سازی می شوند. در هر دو بار مرتب سازی به صورت صعودی انجام می شود.
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string>query = from word in words
orderby word.Length, word.Substring(0, 1)
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
fox
the
brown
jumps
quick
*/
مرتب سازی برای بار دوم به صورت نزولی
مثال زیر طرز مرتب سازی المان های آرایه برای بار اول به صورت صعودی و برای بار دوم به صورت نزولی را نمایش می دهد. المان ها در ابتدا بر اساس طول رشته و سپس بر مبنای اولین حرف از هر رشته مرتب سازی می شوند.
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string>query = from word in words
orderby word.Length, word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
jumps
brown
*/