Making a custom class availabe to LINQ queries
本问题已经有最佳答案,请猛点这里访问。
我有一个基本集合类,它简单地包装了一个自定义对象的列表,保存在一个列表变量中,以允许我使用这个[]索引。
但是,现在我想使类可访问,以便能够从集合Linq查询中的项运行
用一个简单的类比,我可以通过做一个
1 | Employeex = MyStaffList[Payroll]; |
…但我现在想做的是
1 2 3 | var HREmps = from emp in StaffList where emp.Department =="HR" select emp; |
下面是原型类定义……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public class StaffList { List<Employee> lst = new List<Employee>(); public StaffList() { /* Add Employees to the list */ } public Employee this[string payroll] { get { Employee oRet = null; foreach (Employee emp in lst) { if (emp.Payroll.Equals(payroll, StringComparison.InvariantCultureIgnoreCase)) { oRet = emp ; break; } } return (oRet); } } } public class Employee { public string Payroll; public string Department; . . . . } |
为了启用Linq,需要使类实现
然而,更容易的是直接从