传递给其他方法的 LINQ 结果集

本文关键字:LINQ 结果 方法 其他 | 更新日期: 2023-09-27 18:35:31

var result = datatable.AsEnumerable()
                  .GroupBy(row=>row.Field<DateTime>("Date"))
                  .Select(gr=>new 
                  {
                      Date = gr.Key,
                      Agents = gr.Select(x => new 
                      {
                          Id = x.Field<int>("ID"),
                          Agent = x.Field<string>("Agent")
                      })
                  });
    foreach (var res in result) {  
            var lstAgents= res.Agents;
    ImportSchedule(lstAgents);
}

如何在ImportSchedule()方法中传递lstAgents。我在ImportSchedule中定义了什么类型?

传递给其他方法的 LINQ 结果集

你可以

这样做:

public void ImportSchedule(dynamic agents) { }

但是你应该为此创建一个类,原因是如果属性Id更改为AgentId那么你会在运行时发现错误。

欲了解更多信息:

链接 1

你不能将匿名类型传递到方法中,但你可以像这样创建类或结构:

public class AgentDto
{
    public int Id {get; set;}
    public string Agent {get; set;}
}

在这种情况下,您应该像这样制作方法ImportSchedule:

public void ImportSchedule(IEnumerable<AgentDto> agents)

还要注意不要将日期传递到ImportSchedule中,但您可能需要这样做