122. orderby query syntax

בפעמים הקודמות פגשנו בExtension Methods ששמן OrderBy, ThenBy:

1
2
3
4
5
IEnumerable<string> fruits =
new[] {"Banana", "Orange", "Strawberry", "Apple", "Mango", "Grapes", "Lemon"};
IOrderedEnumerable<string> orderedFruits =
fruits.OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);

קיימת גם אפשרות לכתוב כתיבה זו בצורה LINQית באמצעות הkeyword ששמו orderby:

1
2
3
4
IOrderedEnumerable<string> orderedFruits =
from fruit in fruits
orderby fruit.Length, fruit
select fruit;

שימו לב שאנחנו מפרידים בין הדברים שאנחנו מעוניינים לבצע את המיון לפיהם בפסיקים.

קיימת אפשרות גם להצהיר האם המיון הוא עולה או יורד באמצעות הKeywordים descending וascending:

1
2
3
4
IOrderedEnumerable<string> orderedFruits =
from fruit in fruits
orderby fruit.Length descending, fruit ascending
select fruit;

זה מתרגם באופן מאוד צפוי לקוד הבא:

1
2
IOrderedEnumerable<string> orderedFruits =
fruits.OrderByDescending(fruit => fruit.Length).ThenBy(fruit => fruit);

המשך יום ממוין

שתף