您好,我在想知道是否有任何方法可以將多個ArrayList合併到多個數組中。將多重列表轉換爲多維數組
Exmaple
我有arraylist1其中包含名稱。包含電話號碼的arraylist 2和包含地址的arraylist 3。我怎麼能將這些合併成一個多數組,以便將它作爲一個記錄?
您好,我在想知道是否有任何方法可以將多個ArrayList合併到多個數組中。將多重列表轉換爲多維數組
Exmaple
我有arraylist1其中包含名稱。包含電話號碼的arraylist 2和包含地址的arraylist 3。我怎麼能將這些合併成一個多數組,以便將它作爲一個記錄?
讓假設你有串並ith
指數形式記錄所有元素三個ArrayList中,
ArrayList Names = new ArrayList();
ArrayList Phone = new ArrayList();
ArrayList Address = new ArrayList();
ArrayList res = new ArrayList();
for(int i=0; i<Names.Count; i++)
{
res.Add(new string[]{Names[i].ToString(), Phone[i].ToString(), Address[i].ToString()});
}
你也可以做一個新的對象[]或一個新的類或結構來保存每個組合成員,所以你不必處理「字符串化」。 – 2011-06-01 18:50:22
但是,如何從arraylist中獲取信息? – Andy12 2011-06-01 20:00:36
取回值類型將其轉換爲字符串[]。 – 2011-06-02 04:20:55
難道這些的ArrayList以某種方式相關的內容,如通訊錄?
如果是這樣,請考慮創建一個類來表示一個聯繫人。此聯繫人類可以具有姓名,電話號碼和地址屬性。您甚至可以爲這些屬性中的每個屬性使用一個集合,以防給定的聯繫人記錄應用多個屬性。
您可以將不同的聯繫人記錄存儲到ArrayList中,或者如果您使用.NET 2+或強類型列表。
+1提到實際創建一個對象來表示三個字段。 C#是一種面向對象的語言...爲什麼不使用它呢? – 2011-06-01 18:56:58
如果你在.NET 4.0中運行,你應該使用List<T>
,儘管如果你願意,你仍然可以用ArrayList
來做到這一點。但是你可以利用Tuple
到您的類型容易結合起來(雖然我完全同意的建議,以創建一個自定義的類來保存「記錄」):
List<string> phones = new List<string>();
List<string> addresses = new List<string>();
List<string> names = new List<string>();
// fill with data
List<Tuple<string,string,string>> results = new List<Tuple<string, string, string>>();
// aggregate with data - if only two you could also use Zip()
for (int i = 0; i < names.Count; i++)
{
results.Add(Tuple.Create(names[i], addresses[i], phones[i]));
}
問題,我如何從Arraylist中獲取信息,因爲它似乎在多類型列表中? – Andy12 2011-06-01 19:37:27
什麼版本的.NET(的幫助我知道是否你可以使用LINQ或不使用,也可以使用列表而不是ArrayList)? –
2011-06-01 18:41:39
數組以相同的順序?我的意思是,名稱[0] = PhoneNumbers [0] =地址[0]? – 2011-06-01 18:41:51