Выберите случайные объекты из массива в 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();
