کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش مرتب سازی داده ها در Linq

دوره آموزشی Asp.net

 کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

عملیات مرتب سازی داده ها (sorting)

عملیات sorting عبارت است از مرتب نمودن المان های یک دنباله بر اساس یک یا چند خصیصه (attribute). اولین معیار مرتب سازی، المان ها را بر اساس مثلا خصیصه ی length (طول هر رشته) sort می کند. با مشخص کردن معیار دوم برای مرتب سازی، المان های sort شده بر اساس معیار اول را بار دیگر (این بار بر مبنای معیار دوم) داخل هر گروه مرتب شده، مرتب سازی می شوند. 

تصویر زیر عملیات مرتب سازی به ترتیب حروف الفبا را بر روی دنباله ای از حروف کاراکترها نمایش می دهد.

clip_image001

عملگرهای متعارف 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

*/

1395/01/25 3683 1350
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...