I\'m taking a basic course in C# programming, and this is a part of our assignment. Very new to programming so I feel more than a bit lost with this.
The assignment is t
You can access single elements in the ArrayList
doing a cast, for example...
string s = myArrayList[100] as string;
myArrayList.Remove("hello");
myArrayList[100] = "ciao"; // you don't need a cast here.
You can also iterate through all elements without a cast...
foreach (string s in myArrayList)
Console.WriteLine(s);
You can also use CopyTo
method to copy all items in a string array...
string[] strings = new string[myArrayList.Count];
myArrayList.CopyTo(strings);
You can create another List<string>
with all items in the ArrayList
.
Since ArrayList
implements IEnumerable
you can call the List<string>
constructor.
List<string> mylist = new List<string>(myArrayList);
But this doesn't makes much sense... why you don't just use List<string>
directly?
Using directly a List<string>
seems more useful to me, and is faster.
ArrayList
still exists mostly for compatibility purposes since generics were introduced in version 2 of the language.
I just noticed that there may be an error in your code:
while (line != null)
{
fileContent.Add (line);
line = reader.ReadLine ();
}
Should be instead
for (;;)
{
string line = reader.ReadLine();
if (line == null)
break;
fileContent.Add(line);
}
You cast each element on its own before using it.
You can use linq to do this easily:
This will cast all items to string
and return an IEnumerable<string>
. It will fail if any items can't be cast to a string
:
items.Cast<string>();
This will cast all items that can be to a string
and skip over any that can't:
items.OfType<string>();