【问题标题】:LINQ result set passing into other methodLINQ 结果集传递到其他方法
【发布时间】:2016-02-20 10:11:20
【问题描述】:
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中定义了什么类型?

【问题讨论】:

标签: c# linq


【解决方案1】:

你可以这样做:

public void ImportSchedule(dynamic agents) { }

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

更多信息:

Link 1

【讨论】:

    【解决方案2】:

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

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

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

    public void ImportSchedule(IEnumerable<AgentDto> agents)
    

    还请注意,您没有将日期传递给 ImportSchedule,但您可能需要这样做

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2023-02-17
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多