gpt4 book ai didi

c# - 使用 LINQ 选择每个部门收入最高的员工

转载 作者:行者123 更新时间:2023-11-30 21:50:27 25 4
gpt4 key购买 nike

不太确定如何措辞,但基本上我在列表中有一堆数据类似于:

人物 1

姓名 - 乔布洛格斯
年龄 - 40
部门 - IT
工资 - 20,000

人物 2

姓名 - 杰西简
年龄 - 40
部门-厨房
工资 - 16,000

...你明白了。

目前,我只是选择了所有人员,按工资对他们进行排序,然后非常简单地将他们输入到列表框中。

var item = (from employee in employeeList.employees
orderby employee.wage descending
select employee);

现在,我的问题是,如何更改这段代码,以便它过滤列表并仅显示其部门中收入最高的员工?因此,例如,它不会列出数百名员工,而是只会显示收入最高的 IT 员工,然后是餐饮业收入最高的员工,等等。

这可能吗?如果没有,我可以使用任何其他方法来实现这一目标吗?

最佳答案

你可以尝试这样的事情:

var result =  employeeList.employees.GroupBy(emp => emp.Departemnt)
.Select(gr => new
{
Departemnt = gr.Key,
Employee = gr.OrderByDescending(x=>x.wage)
.FirstOrDefault()
});

我们上面所做的是按部门分组,我们为每个部门选择工资最高的员工。

更新

在 .NET 6 中,上面的内容可以重写如下:

var result =  employeeList.employees
.GroupBy(employee => employee.Departemnt)
.Select(gr => new
{
Departemnt = gr.Key,
Employee = gr.MaxBy(x => x.wage)
});

关于c# - 使用 LINQ 选择每个部门收入最高的员工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com