如何使用linq和lambda表达式从两个单独的列表中创建字典

迈迪

我正在练习Linq和Lambda表达式。我有两个这样的课程:

public class Invoice
{
    public int InvoiceId { get; set; }
    public int EmployeeId { get; set; }
    public DateTime InvoiceDate { get; set; }
    public DateTime DueDate { get; set; }
    public bool? IsPaid { get; set; }
    public Invoice()
    {

    }
    public Invoice(int invoiceId, int employeeId, DateTime invoiceDate, DateTime dueDate, bool? isPaid)
    {
        InvoiceId = invoiceId;
        EmployeeId = employeeId;
        InvoiceDate = invoiceDate;
        DueDate = dueDate;
        IsPaid = isPaid;
    }
}

和 :

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int ID { get; set; }
    public DateTime BirthDate { get; set; }
    public string Department { get; set; }
    public double Rating { get; set; }
    public int EmployeeType { get; set; }
    public Person(string firstName, string lastName, int id, DateTime birthDate, string department, double rating, int employeeType)
    {
        FirstName = firstName;
        LastName = lastName;
        ID = id;
        BirthDate = birthDate;
        Department = department;
        Rating = rating;
        EmployeeType = employeeType;
    }
    public Person()
    {

    }
}

我有两个清单:

List<Person> employee = new List<Person> {//some instances of Person here}

List<Invoice> invoices = new List<Invoice> {//some instances of invoice here}

如您所见,Invoice类中的EmployeeId指的是Person的ID。我想创建一个像这样的字典:

var myDictionary=new Dictionary<"employeeName", List<employeeInvoices> >

linq和lambda表达式有可能吗?提前致谢

巴托斯·切尔旺卡(Bartosz Czerwonka)

是的你可以:

    Dictionary<string, List<Invoice>> result = employee.ToDictionary(e => string.Format("{0} {1}", e.FirstName, e.LastName),
        e => invoices.Where(i => i.EmployeeId == e.ID).ToList());

这是完整的代码:

        var employee = new List<Person>() {
            new Person("FN", "LN", 1, new DateTime(1900, 1, 1), "", 1.1, 1),
            new Person("FN1", "LN1", 2, new DateTime(1900, 1, 1), "", 1.1, 1)
        };

        var invoices = new List<Invoice>() {
            new Invoice(1, 1, DateTime.Now, DateTime.Now, false),
            new Invoice(2, 2, DateTime.Now, DateTime.Now, false),
            new Invoice(3, 1, DateTime.Now, DateTime.Now, false),
        };

        Dictionary<string, List<Invoice>> result =
            employee.ToDictionary(e => string.Format("{0} {1}", e.FirstName, e.LastName),
                e => invoices.Where(i => i.EmployeeId == e.ID).ToList());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结合两个Linq lambda表达式

来自分类Dev

组合两个linq表达式

来自分类Dev

合并两个linq表达式

来自分类Dev

如何从两个与iOS和其他Unity平台兼容的列表中创建字典?

来自分类Dev

使用Python组合正则表达式中的两个列表

来自分类Dev

如何使用|| 在lambda表达式中

来自分类Dev

Typescript如何结合两个Lambda表达式

来自分类Dev

为什么带有_的scala lambda无法使用&&组合两个布尔表达式

来自分类Dev

通过lambda表达式使用两个抽象方法实现接口

来自分类Dev

将两个lambda表达式与内部表达式组合

来自分类Dev

使用Lambda表达式比较两个列表

来自分类Dev

如何指定JAVA lambda表达式时,我有两个同名的方法?

来自分类Dev

如何使用单独表中两个和的差创建查询?

来自分类Dev

如何合并两个和并分解出一个公共元素表达式?

来自分类Dev

Terraform For表达式使用一个元组和两个字符串列表创建要在for_each中使用的单个映射

来自分类Dev

从两个大小相同的单独列表中将键和值添加到字典中

来自分类Dev

Linq表达式加入列表和字典

来自分类Dev

LINQ表达式生成两个日期之间的天数列表

来自分类Dev

为什么带有_的scala lambda无法使用&&组合两个布尔表达式

来自分类Dev

通过Lambda表达式检索两个或多个表中的数据

来自分类Dev

使用lambda表达式查找两个列表之间的共同元素

来自分类Dev

如何使用java lambda表达式通过迭代两种不同类型的列表来创建列表?

来自分类Dev

如何使用一个表达式与 lambda 合并两个计数值?

来自分类Dev

如何使用 Lambda 表达式和流 API 或其他替代方法解析和过滤 JSP 或 JSTL 中的两个列表?

来自分类Dev

如何使用 Linq 创建多属性 lambda 表达式

来自分类Dev

如何在列表中拆分两个索引而不是在python中创建单独的列表

来自分类Dev

如何使用 Linq lambda 表达式在两个列表之间获得相等和不相等的值

来自分类Dev

构建用于在字典列表中过滤的 lambda 表达式

来自分类Dev

LINQ 中两个 Lamba 表达式的区别

Related 相关文章

  1. 1

    结合两个Linq lambda表达式

  2. 2

    组合两个linq表达式

  3. 3

    合并两个linq表达式

  4. 4

    如何从两个与iOS和其他Unity平台兼容的列表中创建字典?

  5. 5

    使用Python组合正则表达式中的两个列表

  6. 6

    如何使用|| 在lambda表达式中

  7. 7

    Typescript如何结合两个Lambda表达式

  8. 8

    为什么带有_的scala lambda无法使用&&组合两个布尔表达式

  9. 9

    通过lambda表达式使用两个抽象方法实现接口

  10. 10

    将两个lambda表达式与内部表达式组合

  11. 11

    使用Lambda表达式比较两个列表

  12. 12

    如何指定JAVA lambda表达式时,我有两个同名的方法?

  13. 13

    如何使用单独表中两个和的差创建查询?

  14. 14

    如何合并两个和并分解出一个公共元素表达式?

  15. 15

    Terraform For表达式使用一个元组和两个字符串列表创建要在for_each中使用的单个映射

  16. 16

    从两个大小相同的单独列表中将键和值添加到字典中

  17. 17

    Linq表达式加入列表和字典

  18. 18

    LINQ表达式生成两个日期之间的天数列表

  19. 19

    为什么带有_的scala lambda无法使用&&组合两个布尔表达式

  20. 20

    通过Lambda表达式检索两个或多个表中的数据

  21. 21

    使用lambda表达式查找两个列表之间的共同元素

  22. 22

    如何使用java lambda表达式通过迭代两种不同类型的列表来创建列表?

  23. 23

    如何使用一个表达式与 lambda 合并两个计数值?

  24. 24

    如何使用 Lambda 表达式和流 API 或其他替代方法解析和过滤 JSP 或 JSTL 中的两个列表?

  25. 25

    如何使用 Linq 创建多属性 lambda 表达式

  26. 26

    如何在列表中拆分两个索引而不是在python中创建单独的列表

  27. 27

    如何使用 Linq lambda 表达式在两个列表之间获得相等和不相等的值

  28. 28

    构建用于在字典列表中过滤的 lambda 表达式

  29. 29

    LINQ 中两个 Lamba 表达式的区别

热门标签

归档