首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq Lambda GroupBy和OrderBy

问Linq Lambda GroupBy和OrderBy
EN

Stack Overflow用户
提问于 2010-12-23 15:05:00
回答 3查看 13.4K关注 0票数 4

我想要分组依据,然后对组中的项目进行排序。

我该如何使用lamda,

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var data = new[]
                  {
                      new { Name="Tasty", Type="Strawberries", isAvail=true, Price=1.90m, Quantity=20 },

                    new { Name="Granny Smith", Type="Apple", isAvail=false, Price=0.80m, Quantity=7 },
                    new { Name="Gala", Type="Apple", isAvail=true, Price=0.75m, Quantity=10 }

                  };

            var grouped = data.GroupBy(record => record.Type).OrderBy(x => x.Min(y => (Decimal)y.Price));

            foreach (var group in grouped)
            {
                Console.WriteLine("Key {0}", group.Key);

                foreach (var item in group)
                {
                    Console.WriteLine("\t{0}", item.Name);
                }
            }
            Console.ReadLine();
        }
    }
}

上面的代码给了我这个..

Key - Apple

-史密斯奶奶

-Gala

关键-草莓

-可口

但如你所见,Gala的价格比史密斯奶奶要低..。我做错了什么?请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2010-12-23 15:12:43

在订购之前,您正在进行分组。换句话说,您是对组进行排序,而不是对组中的项目进行排序。

请先尝试订购。

代码语言:javascript
复制
var grouped = data.OrderBy(x => x.Price).GroupBy(record => record.Type); 

这应该是可行的。

票数 11
EN

Stack Overflow用户

发布于 2010-12-23 15:15:12

你试过了吗?

代码语言:javascript
复制
var grouped = data.OrderBy(x => x.Price).GroupBy(record => record.Type);
票数 3
EN

Stack Overflow用户

发布于 2010-12-23 15:14:56

代码语言:javascript
复制
var grouped = data.GroupBy(record => record.Type)
.Select(g=>new {g.Key,records=g.OrderBy(r=>r.Price)})  

//此时记录按价格排序(分组内)

代码语言:javascript
复制
.OrderBy(x => x.records.Min(y => (Decimal)y.Price))

//现在分组也按最低价格排序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4516567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档