-3
if(some condition)
{

       var columnSeries = (from l in logs
       group l by l.MonitoringPorfileName into grp
       select new
       {
                 type = "column",
                 name = grp.Key,
                 data = (from h in Hours
                          let gd = grp.Where(x => x.Hours == h)
                           select gd.Sum(x => x.Count)).ToArray()
                         }).ToList();



           }
}

我怎样才能使这个变量 columnSeries 成为全局变量?我对此进行了很多搜索,发现列表动态>新{};但他们都没有工作,所以非常感谢帮助

4

2 回答 2

3

将匿名类型设为您想要的类。

public class ColumnSeries
{
    public string type {get; set;}
    //...
}

//class level variable
IEnumerable<ColumnSeries> columnSeries = null;

//then create the ColumnSeries list
columnSeries = (from l in logs
                group l by l.MonitoringPorfileName into grp
                select new ColumnSeries
                {
                   type = "column",
                   name = grp.Key,
                   data = (from h in Hours
                          let gd = grp.Where(x => x.Hours == h)
                          select gd.Sum(x => x.Count)).ToArray()
                });
于 2013-07-26T21:16:04.003 回答
1

您在 if 语句中创建了一个匿名类型,但您想在 if 语句的范围之外使用结果。通常你只是在 if 但这是一个匿名类型之前定义'columnSeries',所以它并不明显。

因此,在 if 语句之前执行以下操作(未经测试但应该关闭):

var columnSeries = Enumerable.Repeat(new {type="", name="", data=new int[]{0}}, 0); 

查看此问题以获取更多信息

于 2013-07-26T21:29:07.093 回答