Nu har jag lite problem... Tack så jättemycket, den där känns inte som jag hade knäckt själv... Grejen med ArrayList är att innehållet alltid är av typen object.ArrayList innehållandes en string[] - få ut värden?
Jag får ut en ArrayList från en funktion som i där varje post innehåller en strängarray med 4 poster.
Så här ser koden ut som lägger till saker till ArrayList'en
<code>
ReturnList.Add(Convert.ToString(sdr["foo"].ToString() + "|" +
sdr["bar"].ToString() + "|" +
sdr["baz"].ToString()
).Split(Convert.ToChar("|")));
</code>
Funktionen returnerar sedan "ReturnList".
När jag sedan i funktionen som får min ArrayList ser det ut så här om jag trycker ut den i immediate-fönstret:
? ret[0]
{string[3]}
[0]: "a"
[1]: "b"
[2]: "c"
Nu vill jag skriva ut "ettan" i textbox men där tog det stop...
Hur skriver jag?
TextBox.Text = ???
Tack på förhand
AndreasSv:ArrayList innehållandes en string[] - få ut värden?
Sv: ArrayList innehållandes en string[] - få ut värden?
Därför när du hämtar ut något måste du casta det till rätt objekttyp.
ArrayListen ser string arrayen som object, inte som en string array. Så när du hämtar ut string arrayen måste du tala om för kompilatorn att det faktiskt är en string array (En av anledningarna till att List<> är så trevlig)
ArrayList list = new ArrayList();
string[] array = {"hej", "och", "hå"};
list.Add(array);
// följande kommer att klaga på invalidcastexception eftersom list tror att innehållet är object
string[] myArray = list[0];
// för att lösa detta måste du casta till string[]
string[] myArray = (string[]) list[0];
// och släng in ett värde i textboxen
TextBox.Text = myArray[0];
// svaret du fick innan var bara att allt gjordes lite snabbare på en rad istället för att dela upp det:
// plocka ut, casta och hitta rätt värde i string arrayen direkt:
TextBox.Text = ( (string[]) list[0])[0];
Kanske förtydligar lite? (Eller bara förvirrar...)