我正在尝试使用 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/