【问题标题】:how to fix VAR does not exist in if-else and foreach clause如何修复 VAR 在 if-else 和 foreach 子句中不存在
【发布时间】:2016-10-18 07:23:11
【问题描述】:
private void ChartConfig()
{    
    var qnb;                

    for (int o = 1601; o < 1612 + 1; o++)
    {
        if (o == 1601)
        {
            qnb = (from gog in db.SPerf_Notes
                   where gog.Module == ASPxComboBox1.Text.Trim()
                   select new { gog.Module, gog.KPI_Name, gog._1 }).ToList();
        }
        else
        {
            qnb = (from gog in db.SPerf_Notes
                   where gog.Module == ASPxComboBox1.Text.Trim()
                   select new { gog.Module, gog.KPI_Name, gog._11 }).ToList();
        }                

        foreach (var a in qnb)
        {
            list3.Add(a.Module.Trim());
            list3.Add(a.KPI_Name.Trim());
            list3.Add(a._1.ToString());
        }
 }

在页面顶部我初始化了var qnb;,但我认为它不起作用。 错误是:

错误 123 必须初始化隐式类型的局部变量

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net entity-framework linq linq-to-sql


    【解决方案1】:

    您可以按如下方式创建您的qnb

    IEnumerable<object> qnb= Enumerable.Empty<object>();
    

    【讨论】:

      【解决方案2】:

      来自docs:“只有在同一语句中声明和初始化局部变量时才能使用var”

      当您使用var 关键字声明变量时,该变量称为“隐式类型”。这意味着编译器会根据您分配给它的值来确定变量的类型。

      在您的代码中处理此问题的更好方法如下:

      private void ChartConfig()
      {    
          for (int o = 1601; o < 1612 + 1; o++)
          {            
              var qnb = (from gog in db.SPerf_Notes
                         where gog.Module == ASPxComboBox1.Text.Trim()
                         select new { 
                              gog.Module, 
                              gog.KPI_Name, 
                              (o == 1601 ? gog._1 : gog._11) //You should give this field a name
                          }).ToList();
      
              foreach (var a in qnb)
              {
                  list3.Add(a.Module.Trim());
                  list3.Add(a.KPI_Name.Trim());
                  list3.Add(a._1.ToString());
              }
       }
      

      【讨论】:

        猜你喜欢
        • 2012-06-30
        • 1970-01-01
        • 2012-09-02
        • 2020-03-20
        • 1970-01-01
        • 2020-08-20
        • 1970-01-01
        • 2015-01-26
        • 2021-09-19
        相关资源
        最近更新 更多