PIHelperSh.RandomEx
1.0.0
dotnet add package PIHelperSh.RandomEx --version 1.0.0
NuGet\Install-Package PIHelperSh.RandomEx -Version 1.0.0
<PackageReference Include="PIHelperSh.RandomEx" Version="1.0.0" />
paket add PIHelperSh.RandomEx --version 1.0.0
#r "nuget: PIHelperSh.RandomEx, 1.0.0"
// Install PIHelperSh.RandomEx as a Cake Addin #addin nuget:?package=PIHelperSh.RandomEx&version=1.0.0 // Install PIHelperSh.RandomEx as a Cake Tool #tool nuget:?package=PIHelperSh.RandomEx&version=1.0.0
Библиотека расширения Random
Содержит в себе методы, расширяющие возможности классического генератора случайности C#.
Случайный элемента массива
Семейство методов расширения NextString<>() для Random позволяет получить случайный элемент массива, списка или же случайную букву строки.
Перемешивание массива
Семейство методов расширения Shuffle<>() для Random позволяет перемешать элементы массива или списка случайным образом
Случайный цвет
Метод расширения NextColor() для Random позволяет получить совершенно случайный цвет. Не гарантируется, что он будет смотреться нормально, так как метод в буквальном смысле создаёт цвет из 4-х случайных чисел
Случайный существующий цвет
Метод расширения NextExistColor() для Random позволяет получить случайный цвет из перечисления KnownColor.
Случайная строка
Метод расширения NextString() для Random существует в 2-х вариантах. Первый (наиболее простой) принимает на вход число - длину строки. Возвращает строку, состоящую из случных символов, в число которых входят:
- Строчные английские буква
- Заглавные английские буквы
- Арабские цифры
- Символ пробела Вторая вариация метода - более сложная. Она позволяет создавать строку, формат которой определяется передаваемым в функцию паттерном. В нём можно использовать язык, похожий на тот, что использует Regex. На данный момент поддерживаются функции:
- Константные буквы "abc" → "abc"
- Буквы из диапазона определённое кол-во раз "[a-z]1" → "b", "c", "e"
- Буквы из списка определённое кол-во раз "[ab]1" → "b", "a", "a"
- Буквы из списка/диапазона неопределённое кол-во раз "[ab]*"-> "abababa", "ababaabaabbbaba", "abab"
- Буквы из списка/диапазона 0 или 1 раз "[a-z]?1" → "a1", "1", "v1"
- Буквы из списка/диапазона ровно 1 раз "[a-z]1" → "a1", "e1", "t1" -Экранирование специальным символов ("[", "]", "-", "?", "\" и т. д.) символом "\" "[\-\[\]]2"-> "[]", "[[", "--" Например генератор номерных знаков автомобилей может быть реализован так:
rnd.NextString("[АВЕКМНОРСТУХ] [0-9]3 [АВЕКМНОРСТУХ]2 [0-9]2 RUS");
В результате будут сгенерированы следующие номерные знаки:
С 889 ЕВ 04 RUS
В 613 ТА 59 RUS
М 718 АВ 58 RUS
А 211 УЕ 21 RUS
К 290 ВО 30 RUS
А 456 НА 99 RUS
Т 397 ОТ 45 RUS
Е 337 НТ 52 RUS
Н 333 АК 81 RUS
О 731 УР 21 RUS
Пример одного из вариантов для генерации адресов электронной почты может быть таким:
rnd.NextString("[a-z][a-z_\\-]*@[a-z]*.[a-z]2");
И его результаты:
l-th-eyiqxcaq_wdhar-lcplrx@hzzkrznida.fv
bn_ihsa_yh@mnrvdnaqflp.pj
tmlfrroby_jtkcvxvoxpko_uqp@ukctawp.nj
hi-zkhlyov@tsejmloxgaxj.yo
iruuvo_tel@wuce.be
nnsmfstpuer@f.qh
pdhzpiuh@avcqzltjwf.ja
cunmqoypgcjgigygl_odfx@sczvoxxc.dm
uuhftpgcfrlzbkuaw-bp@reloqphw.wj
oghcqscnatlwmrgj@anebed.qn
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- PIHelperSh.Core (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 151 | 8/21/2024 |