2013-06-25 69 views
0

我發現此代碼生成不同類型的二維動態數組,但我如何訪問例如:ar [0] - > o [0]?訪問不同類型的二維動態數組

Thx!因爲你使用的是對象數組

((object[])ar[1])[2] 

獲得第二陣列中的第三個對象,但要注意,你必須施放此爲正確的類型:

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

namespace Collections 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ArrayList ar = new ArrayList(); 
      object[] o = new object[3]; 
      // Add 10 items to arraylist 
      for (int i = 0; i < 10; i++) 
      { 
       // Create some sample data to add to array of objects of different types. 
       Random r = new Random(); 
       o[0] = r.Next(1, 100); 
       o[1] = "a" + r.Next(1,100).ToString(); 
       o[2] = r.Next(1,100); 
       ar.Add(o); 
      } 
     } 
    } 
} 
+0

爲什麼你甚至想這個代碼,你發現了什麼? – musefan

回答

3

您可以使用它像這樣。

我寧願推薦這種方法,創建自己的類來保存您的數據。這樣你就不需要照顧把對象轉換成適當的類型。

public class Randoms 
{ 
    public int Rand1 { get; set; } 
    public string Rand2 { get; set; } 
    public int Rand3 { get; set; } 
} 

,然後使用泛型列表

List<Randoms> = new List<Randoms>(); 

所以在最後的代碼是這樣的:

List<Randoms> ar = new List<Randoms>(); 
// Add 10 items to list 
for (int i = 0; i < 10; i++) 
{ 
     Randoms rand = new Randoms(); 
     Random r = new Random(); 
     rand.Rand1 = r.Next(1, 100); 
     rand.Rand2 = "a" + r.Next(1, 100).ToString(); 
     rand.Rand3 = r.Next(1, 100); 
     ar.Add(rand); 
}