访问列表清单

时间:2013-01-01 16:06:31

标签: c# list

我创建了一个List列表来存储随机生成的数据但是我的实现显示了以下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 个答案:

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

答案 1 :(得分: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