【问题标题】:Access List of List [duplicate]列表的访问列表 [重复]
【发布时间】:2013-01-01 16:06:30
【问题描述】:

我创建了一个列表列表来存储随机生成的数据,但是我的实现显示以下智能感知错误“当前上下文中不存在变量名”。我哪里出错了?这是我的代码所需的部分。

           List<List<string>> DataList = new List<List<string>>();
           //Some Code
            for (int i = 0; i < num; i++)
            {
                List<string> strVal = new List<string>();
                foreach (string someVal in SomeList)
                {                    
                    //Some Code
                    strVal.Add(data);
                }

                DataList.Add(strVal);
            }

            for (int i = 0; i < num; i++)
            {
                foreach (IList<string> name in DataList)
                {
                    foreach (string listVal in strVal) // Error Here
                    {
                        //Some Code
                    }                    
                }
            }

我哪里做错了?谢谢。

【问题讨论】:

    标签: c# list


    【解决方案1】:
      foreach (IList<string> name in DataList)
                {
                    foreach (string listVal in strVal) // Error Here
                    {
                        //So
    

    应该是

      foreach (IList<string> name in DataList)
                {
                    foreach (string listVal in name ) // Error Here
                    {
                        //So
    

    【讨论】:

      【解决方案2】:

      您正在定义strVal inside 第一个for 循环并尝试在第二个循环中访问它。

      strVal 在第一个 for 循环结束时超出范围。在第一个循环之外定义它,以便两个循环都可以访问它。

      List<List<string>> DataList = new List<List<string>>();
      //Some Code
      List<string> strVal = new List<string>();
      for (int i = 0; i < num; i++)
      {        
          foreach (string someVal in SomeList)
          {                    
              //Some Code
              strVal.Add(data);
          }
          DataList.Add(strVal);
      }
      for (int i = 0; i < num; i++)
      {
          foreach (IList<string> name in DataList)
          {
             foreach (string listVal in strVal)
             {
                  //Some Code
             }                    
          }
      }
      

      这就是导致您的错误的原因,尽管它可能不是您想要做的。请参阅@Chen 的答案以获得更合乎逻辑的内容:)

      【讨论】:

      • 感谢您的解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多