我有一个基本的集合类,简单地将自定义对象的列表包装在List变量中,以允许我使用this[]索引。
然而,现在我想使这个类能够通过from item in collection LINQ查询来访问
使用一个简化的比喻,我可以通过只是执行列表中的代码来获取员工:
Employeex = MyStaffList[Payroll];
但是我现在想要做的是
var HREmps = from emp in StaffList
where emp.Department == "HR"
select emp;
以下是原型类定义...
请注意,proto-type 中的连字符应更改为连字符,以便正确解释。
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;
.
.
.
.
}