如何访问循环外的字符串数组

Aru*_*lam 3 c# arrays loops

for (int z = 0; z < alParmValues.Count; z++)
{
   //string[] def;
   string[] asd = alParmValues[z].ToString().Split(',');//this is of type string.collections and u cant cast it to a arraylist or array 
   //if (HUTT.clsParameterValues.bCustomObj == false)

   string[] def = alMethSign[z].ToString().Substring(alMethSign[z].ToString().IndexOf('(') + 1, alMethSign[z].ToString().IndexOf(')') - (alMethSign[z].ToString().IndexOf('(') + 1)).Split(',');
}
Run Code Online (Sandbox Code Playgroud)

我必须访问循环外的两个字符串数组.有更好的解决方案吗?我不能使用ArrayList或将它们声明为public,那么我该如何访问它们呢?

Joh*_*lla 7

要访问循环之外的东西,只需在循环之外声明它,然后在循环处理完成后使用它:

string[] arr = ...

for (int z = 0; z < alParmValues.Count; z++)
{
  // work with arr...
}

var item = arr[3]; // Accessed outside of loop.
Run Code Online (Sandbox Code Playgroud)

但是,您的代码似乎有些问题.我建议稍微考虑一下循环体和你想要做的事情.考虑这一行,例如:

for (int z = 0; z < alParmValues.Count; z++)
{
  // ...
  string[] asd = alParmValues[z].ToString().Split(',');

  // There aren't any more references to asd after this point in the loop,
  //   so this assignment serves no purpose and only keeps its last assigned
  //   value.
}
Run Code Online (Sandbox Code Playgroud)

这项任务毫无意义; 每次进行循环时,只需覆盖之前的值asd,就不会在循环中使用它.