【问题标题】:Get maximum Count Lists Nested inside a list获取嵌套在列表中的最大计数列表
【发布时间】:2012-04-25 09:30:14
【问题描述】:

我有一个员工列表,所有员工都有另一个嵌套列表,称为 DisplayList。

现在并非所有员工都拥有相同数量的 DisplayField。所以我希望得到那些具有最高 DisplayFields 的人,这样我就可以将每个人都纳入显示中。

目前我有以下内容:-

            int iMaxDisplayCount = 0;
        foreach (Employee employee in employeeList)
        {
            int iDisplayCount = employee.EmployeeDisplayCollection.Count;
            if (iDisplayCount > iMaxDisplayCount)
                iMaxDisplayCount = iDisplayCount;
        }

        var employees = employeeList.GroupBy(p => p.EmployeeDisplayCollection.Count == iMaxDisplayCount).Select(g => g.ToList());  
        foreach(var employeeHighList in employees)
        {
            foreach (var employee in employeeHighList) 
            {         

            }         
        } 

但是由于某种原因,我得到了employeeHighList 中的所有员工,而不仅仅是显示次数最多的员工。

我认为 GroupBy 不正确,但不知道它有什么问题。

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • 你的问题不是很清楚。 “这样我就可以将每个人都纳入展示中”是什么意思?请阅读tinyurl.com/so-hints 并编辑您的问题以使其更清晰。

标签: c# linq c#-4.0 linq-to-objects


【解决方案1】:
var max = employeeList.Max(e=>e.EmployeeDisplayCollection.Count);

var maxEmp = employeeList.Where(e=>e.EmployeeDisplayCollection.Count == max)
                         .ToList()

【讨论】:

  • @AdamHouldsworth,是的,我希望 EmployeeDisplayCollection 始终是一个实例
  • 嗨,Adrian EmployeeDisplayCollection 是与每个员工相关的显示变量列表。所以这是每个员工的一个实例,是的。再次感谢这个 LINQ!我真的很喜欢这个解决方案
  • 这段代码在外部列表中循环了两次!您只需一个循环即可完成!当您遍历外部列表时,将列表的索引存储为最大计数,这样您就不必返回查看哪个列表具有最大计数!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多