Выберите случайные объекты из массива в C#

В этом примере создается общий метод расширения, который позволяет легко выбирать случайные объекты из массива. Следующий код показывает метод расширения и класс RandomTools, который определяет его.

public static class RandomTools
{
    // Случайный объект, используемый этим методом.
    private static Random Rand = null;

    // Возвращает случайное значение.
    public static T PickRandom(this T[] values)
    {
        // Создаем объект Random, если он не существует.
        if (Rand == null) Rand = new Random();

        // Выберите элемент и вернем его.
        return values[Rand.Next(0, values.Length)];
    }
}

Класс сначала определяет приватную переменную типа Random. Он использует этот объект для генерации случайных чисел, когда он им нужен.

Далее класс определяет метод расширения PickRandom. & lt; T & gt; после имени метода указывает, что это общий метод, который принимает один общий параметр, который в этом методе называется T.

Ключевое слово this указывает, что это метод расширения, который расширяет переменную, которая следует за ним. В этом случае он расширяет массив типа T.

Сначала метод проверяет переменную Rand и инициализирует ее, если она null. Затем код использует Rand.Next для генерации случайного числа в пределах массива values. Он заканчивается, возвращая соответствующее значение из массива.

Этот код не длинный, но он немного запутан, потому что он использует как методы расширения, так и дженерики. Однако после того, как вы определили его, он очень прост в использовании. Следующий код показывает, как программа использует метод PickRandom для выбора случайной строки из txtLines TextBox.

txtResult.Text = txtNames.Lines.PickRandom();

Источник: http://csharphelper.com/blog/2015/01/select-random-objects-from-an-array-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector