在foreach循环外使用foreach循环的变量

时间:2015-05-15 21:24:17

标签: c#

我有一个foreach循环,我在循环中创建了一个字符串,但我想在循环外使用var,是否可能?

    List<int> roleIntList = new List<int>();
    foreach(var rolenodes in roleIntList){          
     string myStr = "hello";
    }

4 个答案:

答案 0 :(得分:6)

如果在循环外声明字符串,则可以:

string myStr = null;
List<int> roleIntList = new List<int>();
foreach(var rolenodes in roleIntList){          
    myStr = "hello";
}

然后,在循环运行后,myStr将包含最后指定的值。

答案 1 :(得分:1)

这绝对不可能,在foreach循环中声明变量“内部”也不是一个好主意,为什么不考虑这个:

List<int> roleIntList = new List<int>();
string myStr;
foreach(var rolenodes in roleIntList){          
   myStr = "hello";
}

...

//use myStr

答案 2 :(得分:0)

每个

(表达式中的标识符类型){    声明 }

注意:上述情况下的标识符 表示集合元素的迭代变量。当identifier是Tracking Reference Operator(C ++ Component Extensions)时,您可以修改元素。 它超出范围,每个循环的时刻都完全执行

答案 3 :(得分:0)

你在找这样的东西..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            List<string> myStr = new List<string>();
            List<int> roleIntList = new List<int>();

            roleIntList.Add(1);
            roleIntList.Add(2);
            roleIntList.Add(3);
            roleIntList.Add(4);

            foreach (var rolenodes in roleIntList)
            {
                string ss = rolenodes.ToString();
                myStr.Add(ss);
            }

            foreach (string s in myStr)
            {
                Console.WriteLine(s);
            }

            Console.Read();


        }
    }
}