我正在尝试从main方法中获取foreach的变量结果。代码如下所示:
static void Main(string[] args)
{
ArrayList lines = GetLines("test.txt", "8394", true);
foreach (string s in lines)
{
string result = s;
}
Console.WriteLine(result);
}
正如您所看到的,它会返回错误,因为我无法访问foreach之外的变量。 我该如何访问它?
答案 0 :(得分:5)
我无法理解你想要达到的目标......但代码应该是这样的:
ArrayList lines = GetLines("test.txt", "8394", true);
string result=string.Empty;
foreach (string s in lines)
{
result = s;
}
Console.WriteLine(result);
我认为你想要这样做:
ArrayList lines = GetLines("test.txt", "8394", true);
foreach (string s in lines)
{
Console.WriteLine(s);
}
答案 1 :(得分:1)
您的代码在逻辑上是错误的。循环遍历某些行,将它们分配给变量,然后对它执行 nothing ,然后将下一行分配给新变量(每次循环得到另一行时,创建另一个名为result的变量)等等。
这可以被视为逻辑代码:
string names = string.Empty;
foreach (string name in namesList)
{
names += ", " + name;
}
console.WriteLine(names);
答案 2 :(得分:0)
static void Main(string[] args)
{
string result = string.Empty;
ArrayList lines = GetLines("test.txt", "8394", true);
foreach (string s in lines)
{
result += s;
}
Console.WriteLine(result);
}
答案 3 :(得分:0)
你需要在大括号{}之外声明一个变量,以便在
之外使用它ArrayList lines = GetLines("test.txt", "8394", true);
string result;
foreach (string s in lines)
{
result = s;
}
Console.WriteLine(result);
明显的答案是,然而此代码只会向控制台写出行数组中的最后一个参数/项。
这一切都取决于你真正想要的,如果你想写出行数组的所有内容,你可以在循环中为每个项目写行。 e.g。
ArrayList lines = GetLines("test.txt", "8394", true);
string result;
foreach (string s in lines)
{
result = s;
Console.WriteLine(result);
}
会写每个项目
答案 4 :(得分:0)
在foreach循环中声明的任何变量的范围仅限于循环本身。它不能在循环外访问。正如@danyolgiax所提到的,在循环外声明变量。然后你就可以访问它了。
答案 5 :(得分:0)
Variables
中访问 scope
。因此,如果您想访问foreach loop
之外的变量,请在循环外声明它。
string result = string.Empty;
foreach (string s in lines)
{
result = s;
}
答案 6 :(得分:0)
在foreach循环之外声明字符串结果
string result = "" ;
foreach (string name in namesList)
{
names += ", " + name;
}
....等