2013-01-01 49 views
-1

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

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

我哪里出错了?谢谢。

回答

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 
+0

谢谢。有我的错误。 –

2

您正在定义strVal里面第一个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的回答一些更合理的:)

+0

感谢您的解释。 –