लैंबडा अभिव्यक्ति में अवरोही क्रम?


250

मैं सामान्य लाइनक व्याकरण में जानता हूं, orderby xxx descendingबहुत आसान है, लेकिन मैं लैंबडा अभिव्यक्ति में यह कैसे करूं?

जवाबों:


428

जैसा कि ब्रानोन कहता है, यह OrderByDescendingऔर है ThenByDescending:

var query = from person in people
            orderby person.Name descending, person.Age descending
            select person.Name;

के बराबर है:

var query = people.OrderByDescending(person => person.Name)
                  .ThenByDescending(person => person.Age)
                  .Select(person => person.Name);

7
"आदेश person.Name उतरते द्वारा" होना चाहिए " orderby person.Name उतरते"
mxmissile

63

का उपयोग करें System.Linq.Enumerable.OrderByDescending()?

उदाहरण के लिए:

var items = someEnumerable.OrderByDescending();

21

इसे इस्तेमाल करे:

List<int> list = new List<int>();
list.Add(1);
list.Add(5);
list.Add(4);
list.Add(3);
list.Add(2);

foreach (var item in list.OrderByDescending(x => x))
{
    Console.WriteLine(item);                
}


3

यह केवल उन स्थितियों में काम करता है जहां आपके पास एक संख्यात्मक क्षेत्र है, लेकिन आप इस तरह के क्षेत्र के नाम के सामने माइनस साइन रख सकते हैं:

reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);

हालांकि इस से थोड़ा अलग काम करता है OrderByDescendingजब आप एक पर चल रहे हैं है int?या double?या decimal?क्षेत्रों।

क्या होगा पर OrderByDescending नल पर है अंत में होगा, इस विधि के साथ nulls शुरुआत में होगा। यदि आप डेटा को टुकड़ों में विभाजित किए बिना और बाद में इसे splicing करना चाहते हैं तो यह उपयोगी है।


1

LastOrDefault()आमतौर पर काम नहीं कर रहा है लेकिन इसके साथ Tolist()काम करेगा। इस तरह का OrderByDescendingउपयोग करने की आवश्यकता नहीं है Tolist()

GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.