c# - Linq 查询- 字典中的集合

标签 c# asp.net wpf linq

我正在尝试使用 linq 从字典中获取结果,但我不确定该怎么做。 我正在尝试编写一个 linq 查询来获取员工姓名,empId = 2 的薪水。请用正确的 linq 查询纠正我。

class Program
{
    static void Main(string[] args)
    {
        Dictionary<int, List<Employee>> empDic = new Dictionary<int, List<Employee>>();
        var emp = new List<Employee>();
        emp.Add(new Employee{EmpID = 1,Name="affsa",Salary=2000})  ;
        emp.Add(new Employee { EmpID = 2, Name = "axy",Salary=3000 });
        emp.Add(new Employee { EmpID = 3, Name = "xyz",Salary=4000 });
        empDic.Add(1,emp);

        var selectedEmpDetails = empDic.Values
                                       .Select(r => r.Where(f => f.EmpID ==2))
                                       .ToList();          
    }
}

public class Employee
{
    public string Name { get; set; }
    public int EmpID { get; set; }
    public int Salary { get; set; }
}

最佳答案

你可以尝试这样的事情:

var selectedEmpDetails = empDic.SelectMany(x=>x.Value)
                               .Where(x=>x.EmpId==2)
                               .Select(x=> new { Name = x.Name, Salary = x.Salary });

最初,我们将字典的值展平到 Employee 对象列表中。

然后我们选择EmpId等于2的对象。

最后我们选择它的 name 和 salary 属性。

关于c# - Linq 查询- 字典中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24887666/

相关文章:

c# - 捕获鼠标点击事件

wpf - WPF 中 Windows 激活的 Alt-Tab 问题

c# - WPF WebBrowser C# Windows 不会旋转渲染

c# - 找不到按钮元素C#

c# - 中继器的 ItemDataBound 不会影响某些值

javascript - 如何向asp.net MVC链接元素添加ID属性

javascript - 拖动任何devexpress组件时如何防止其他元素突出显示?

c# - 如何为高级搜索屏幕构建自定义表达式

c# - 将数据表写入数据库文件,一次一条记录

c# - 如何在单击按钮时显示 fancybox(示例)