从另一个方法中访问列表

时间:2014-04-12 15:28:47

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

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

    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;

    }
}

现在在第三种方法中我想用Visitors.TotalVisitors和Orders.TotalOrders计算转换率,为了做到这一点,我还需要来自&#34; 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;

}

总结:为了在&#34; CreateConversionReport&#34;中创建转换计算。我需要访问VisitorsList和OrdersList,因为它们包含我计算转换所需的所有数据。

谢谢

2 个答案:

答案 0 :(得分:0)

有3种方法,

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

答案 1 :(得分:0)

您有两种选择:

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