-1

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

           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
                    }                    
                }
            }

我哪里出错了?谢谢。

4

2 回答 2

2

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

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

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 的答案以获得更合乎逻辑的内容:)

于 2013-01-01T16:07:22.253 回答
2
  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
于 2013-01-01T16:08:09.963 回答