定义了很多数组,名称形如  s1,s2,s3
现在要循环读取各个数组的长度string[] s1 ={ "a" };
string[] s2 ={ "a" , "b" };
……
for (int i = 1; i < 35; i++)
{
    string fff = "s" + i;
    Response.Write(fff.Length + "<br />");
}这样写有问题,输出的是字符串的长度,怎么才能循环输出这些数组的长度
i=1时   输出的是s1这个数组的长度,i=2时,是s2的长度c#的问题

解决方案 »

  1.   

    s1 和s2 如果在方法体外可以用反射..如果在方法里 可以先放到Ilist<string[]> 然后循环IList就可以了.
      

  2.   


    array[] myarry=new array[35]{s1,s2,.....}
    for(i=0;i<35;i++)
    {
      Response.Write(myarry[i].Length + " <br />"); 
    }
      

  3.   

    用foreach应该更快array[] myarry=new array[35]{s1,s2,.....}
    foreach(array arr in myarry)
    {
      Response.Write(arr.Length + " <br />"); 
    }
      

  4.   

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] s1 ={ "a" }; 
                string[] s2 ={ "a" , "b" };
                IList<string[]> aa = new List<string[]>();
                aa.Add(s1);
                aa.Add(s2);
                for (int i = 0; i < aa.Count; i++)
                {
                    Console.WriteLine(aa[i].Length);               
                }
                Console.ReadKey();         
            }
        }
    }
      

  5.   

      用  IList<string[]> 在把数组整合以下
      

  6.   

    添加一部分代码 string[] s1 ={ "a" }; 
     string[] s2 ={ "a" , "b"};
     string[][] ss = { s1,s2,```````};//把字符串s1,s2```放在字符串二维数组之中,以方便遍历。
                
     for (int i = 1; i < 35; i++) 
       { 
          //string fff = "s" + i; 
          //Console.WriteLine(fff.Length + " <br />");
          //这一段是错误的,它写的是字符串fff的长度,fff = s1,s2,s3```,长度都是2 

                    
          foreach (string[] aa in ss)
          {
                Console.WriteLine(aa.Length);                   
           }
        }