首先,很抱歉,是否曾经有人问过这个问题,但我尝试在这里(几天内)搜索了几十个问题,而我找不到合适的问题。
我正在尝试将常见的SQL查询转换为LINQ。如果我能够使用SQL语句,这是简化的代码版本...
List<T> myData = new List<T>(); // (Employee, Age, Department);
myData.Add("Bill", 34, "IT");
myData.Add("Fred", 23, "ACCOUNTS");
myData.Add("Jane", 44, "SALES");
myData.Add("Sally", 56, "IT");
myData.Add("Harry", 33, "ACCOUNTS");
List<T> filteredData = SELECT * FROM myData
WHERE Department IN (
SELECT Department
FROM myData
GROUP BY Department
HAVING (COUNT(Department) > 1)
)
ORDER BY Department, Employee
So that filteredData contains:
Fred, 23, ACCOUNTS
Harry, 33, ACCOUNTS
Bill, 34, IT
Sally, 56, IT
这需要产生一个清单,该清单包含部门中有多个员工的员工。
有人可以将此要求转换为Linq格式和使用方法(扩展名)格式的LINQ吗?
这也应该工作:
var filteredData = myData.GroupBy(x => x.Department)
.Where(x => x.Count() > 1)
.SelectMany(x => x)
.OrderBy(x => x.Department)
.ThenBy(x => x.Employee)
.ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句