Possible Duplicate:
Randomize a List<T> in C#
I thought I had my code working but now it seems not. Here's what I have:
public class NoteDetail
{
    public NoteDetail()
    {
        _noteDetails = new List<string>();
    }
    public IList<string> NoteDetails { get { return _noteDetails; } }
    private readonly List<string> _noteDetails;
}
I populate my details like this:
        var noteDetail = new NoteDetail ();
        noteDetail.NoteDetails.Add("aaa");
        noteDetail.NoteDetails.Add("bbb");
        noteDetail.NoteDetails.Add("ccc");
Now I want to shuffle so I used this routine:
    public static void ShuffleGenericList<T>(IList<T> list)
    {
        //generate a Random instance
        var rnd = new Random();
        //get the count of items in the list
        var i = list.Count();
        //do we have a reference type or a value type
        T val = default(T);
        //we will loop through the list backwards
        while (i >= 1)
        {
            //decrement our counter
            i--;
            //grab the next random item from the list
            var nextIndex = rnd.Next(i, list.Count());
            val = list[nextIndex];
            //start swapping values
            list[nextIndex] = list[i];
            list[i] = val;
        }
    }
My problem is that I am not sure how to do the shuffle. I have tried the following but it gives:
Error 237 Argument 1: cannot convert from 'System.Collections.Generic.IList' to 'System.Collections.Generic.IList<.Storage.Models.NoteDetail>'
Sort.ShuffleGenericList<NoteDetail>(noteDetail.NoteDetails);
Can anyone see what I am doing wrong. It all looks okay to me and I can't see why I should get this error :-(
 
     
     
     
    