Skip to main content
 首页 » 编程设计

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

2024年02月06日31tintown

我正在尝试使用 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 属性。