使用linq从var中提取一列

Piy*_*ana 5 c# linq-to-entities

我有类似的东西

var emp = db.Employees.toList();
Run Code Online (Sandbox Code Playgroud)

在我的employees表中我有emp名称,emp id和salary,使用linq和lambda表达式,我如何在另一个变量中访问emp id.我已经尝试查找它,找不到使用带有lambda表达式的linq的解决方案

var employeeLeaves = db.Leaves
     .Include("Employee")
     .Include("Employee.Manager")
     .Where(l => l.Status.Id == 1)
     .GroupBy(l => l.Employee.Manager.Id)
     .Select(l => l.GroupBy(k=>k.Employee.Id).Select(j=>j.GroupBy(??p=>p.GroupId)))
     .ToList(); 
Run Code Online (Sandbox Code Playgroud)

这是我的实际查询,不要问我是怎么写的..:P现在我想从employeeLeaves获取id列并将其存储在另一个变量中

Jon*_*eet 13

现在还不完全清楚你要做什么,这就是为什么你用不同的方法得到这么多答案的原因.如果您正在尝试将"员工集合"转换为"ID集合",那么您需要以下内容:

var ids = emp.Select(x => x.Id);
Run Code Online (Sandbox Code Playgroud)

或者更直接:

var ids = db.Employees.Select(x => x.Id);
Run Code Online (Sandbox Code Playgroud)

(可选择ToList在每个结尾处.)

我强烈建议你在var一本好书或教程的帮助下,从头开始,彻底地学习LINQ(以及与之相关的语言特性).通过找到一些有点像你想要的东西的样品来零碎学习,这不是一个好方法,IMO.