【问题标题】:Accessing list from one method in another从另一种方法访问列表
【发布时间】:2014-04-12 15:28:46
【问题描述】:

我想知道如何从另一种方法访问列表。基本上我想做这样的事情:

    public class StatisticsController : BaseNopController
    {

        public List<Visitors> CreateVisitorsReport (StatisticsListModel model)
        {
           var StartDate = DateTime.Today.AddDays(-10);
           var EndDate = DateTime.Today.AddDays(-1);

          // -- Visitors class contain properties "Date" and "TotalVisitors". Dates between Start and EndDate

           List<Visitors> VisitorsList = new List<Visitors>();

          //  --- Some code populating a list of Visitors objects


           return VisitorsList;

        }



    public List<Orders> CreateOrdersReport (StatisticsListModel model)
    {
       var StartDate = DateTime.Today.AddDays(-10);
       var EndDate = DateTime.Today.AddDays(-1);

       // -- Visitors class contain properties "Date" and "TotalOrders". Dates between Start and EndDate

       List<Orders> PersonList = new List<Orders>();

       //  --- Some code populating a list of Orders objects


       return OrdersList;

    }
}

现在在第三种方法中,我想用 Visitor.TotalVisitors 和 Orders.TotalOrders 计算转化率,为了做到这一点,我还需要“CreateVisitorsReport 和 CreateOrdersReport”的返回结果。

对不起,如果我的代码看起来很愚蠢,但我对此有点陌生,所以这可能不是最佳的,我可能应该为此使用一些模式。

我的第三种方法看起来像这样:

public List<IEnumerable> CreateConversionReport(StatisticsListModel model)
{

  List<Ienumerable> ConversionList = new List<IEnumerable>();

  foreach (var CreationDate in orders )
  {
  // -- Devide all Visitors in VisitorsList with Orders in OrdersList
  }

  return ConversionList;

}

总结:为了在“CreateConversionReport”中创建转换计算,我需要访问访客列表和订单列表,因为它们包含计算转换所需的所有数据。

谢谢

【问题讨论】:

    标签: c# .net asp.net-mvc list methods


    【解决方案1】:

    你有两个选择:

    1. 从您的方法中调用CreateVisitorsReportCreateOrdersReport 并获取列表,执行操作。
    2. 如果您不想在类级别声明列表,请将定义放在您的方法之外,然后您可以从 CreateConversionReport 访问它们。

    【讨论】:

    • 嗯,我的第一个想法是选项 1,但我正在考虑选项 2 是否看起来更好,你觉得呢?另外,当您说“在班级级别声明您的列表”时,您的意思是作为列表属性还是简单的列表?
    【解决方案2】:

    有3种方法,

    1. 在您的类中声明 2 个 List 变量并在方法中分配它们(而不是 return 或在调用它们之后)它们在第三种方法中使用它
    2. 声明 List 并将其传递给 CreateOrdersReport 和 CreateVisitorsReport,它们填充列表
    3. 在第三种方法中调用它们,你得到它们的结果然后使用它

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 2015-12-20
      • 2019-07-31
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2015-06-15
      相关资源
      最近更新 更多