Arrays and Generic Lists in C# (Part1 )


I have had a request to discuss C# arrays but in general  I don’t use arrays much anymore. I use generic Lists all the time mainly because the list is dynamic and can be resized easily. Arrays in comparrison are a static amount of memory and need to resized to handle additional items. The following is a simple console app (all it does is sort an group of ints, add another int, sort again and then print the list) that demonstrates what I am talking about – no linq yet I’ll add that to part 2 …

using System;
using System.Collections.Generic;

namespace ArraysAndLists
{
    class Program
    {
        static void Main(string[] args)
        {
            //Why I don't really use arrays any more - 
            //we will sort an array add another item and sort again

            int[] numberArray = { 4,1,3, 1, 3, 4, 5 };
            Array.Sort(numberArray);
            int[] numberArray2 = new int[numberArray.Length+1];
            numberArray.CopyTo(numberArray2,0);
            numberArray2[numberArray2.Length - 1] = 2;
            Array.Sort(numberArray2);
            Console.WriteLine("Array Sorted");
            for (int i = 0; i < numberArray2.Length;i++ )
            {
                Console.WriteLine(numberArray2[i]);
            }

            //Why I love generic lists
            //we will sort an array add another item and sort again

            List<int> numberList = new List<int> { 4, 1, 3, 1, 3, 4, 5 };
            numberList.Sort();
            numberList.Add(2);
            numberList.Sort();
            Console.WriteLine("Generic List Sorted");
            numberList.ForEach(i => Console.WriteLine(i));

            Console.ReadLine();
        }
    }
}

I did find a great article on datastructures in C# btw, and in fact its part of a game development series so if you are interested in a more detailed analysis of .NET collection classes (Arrays,Collections,Lists etc…) have a look

http://create.msdn.com/en-US/education/catalog/article/data_structures

Cheers

Dom

 
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s