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>();