使自定义类可用于LINQ查询

 卡农的信仰144 发布于 2023-02-13 19:08

我有一个基本的集合类,它只包含一个自定义对象的列表,保存在List变量中以允许我使用this []索引.

但是,我现在想要使类可以从集合 LINQ查询中的运行

使用简化的类比,我可以通过刚刚从列表中获得一名工作人员

Employeex = MyStaffList[Payroll];

......但我现在想做的是

var HREmps = from emp in StaffList
             where emp.Department == "HR"
             select emp;

下面是原型类定义....

public class StaffList
{
    List lst = new List();

    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;
    .
    .
    .
    .
}

Jon.. 12

您需要创建类实现IEnumerable以启用LINQ.这很容易做到(只有一种方法,它可以return lst.GetEnumerator();.

然而,更容易的是List直接派生而不是派生object.有没有理由你不这样做?

1 个回答
  • 您需要创建类实现IEnumerable<Employee>以启用LINQ.这很容易做到(只有一种方法,它可以return lst.GetEnumerator();.

    然而,更容易的是List<Employee>直接派生而不是派生object.有没有理由你不这样做?

    2023-02-13 19:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有