Пример #1
0
        private ArrayListIndicesRandom RandomizeFromArray(ArrayList ar)
        {
            int index;

            object [] array = (object [])ar.ToArray(typeof(object));
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom(ar.Count);
            int left = ar.Count;

            elements.Clear();

            // Generate a random number that can be as big as the maximum -1
            // Add the random element picked up element in the list
            // The element just randomized gets out of pending list and replaced by the maximum -1 element
            for (int i = 0; i < ar.Count; i++, left--)
            {
                index = random.Next(left);
                elements.Add((int)array[index]);
                array[index] = array[left - 1];
            }
            return(elements);
        }
Пример #2
0
        private ArrayListIndicesRandom RandomizeFromArray(ArrayList ar)
        {
            int index;
            object []array = (object []) ar.ToArray (typeof (object));
            ArrayListIndicesRandom elements = new ArrayListIndicesRandom (ar.Count);
            int left = ar.Count;
            elements.Clear ();

            // Generate a random number that can be as big as the maximum -1
            // Add the random element picked up element in the list
            // The element just randomized gets out of pending list and replaced by the maximum -1 element
            for (int i = 0; i < ar.Count; i++, left--) {
                index = random.Next (left);
                elements.Add ((int) array[index]);
                array[index] = array[left - 1];
            }
            return elements;
        }