Viyi.Util версии 2 был полностью переписан и не полностью совместим с версией 1.
Версия 2, опираясь на опыт других современных высокоуровневых языков, библиотек и повседневных сценариев использования, предоставляет ряд распространённых функций инструментов и классов инструментов, используя «расширенные функции» C# в качестве основной формы реализации, а также включает некоторые статические классы Helper и другие инструменты.
Другие связанные библиотеки
Viyi.Util содержит большое количество контента и зависимостей, некоторые функции были выделены в отдельные небольшие библиотеки:
- Viyi.Strings фокусируется на расширении функциональности строк и инструментов;
- Viyi.Bytes (скоро появится) фокусируется на расширении двоичных функций и инструментов.
Viyi.Util доступен через NuGet.
Чтобы получить его, выполните следующую команду в консоли диспетчера пакетов Visual Studio:
PM> Install-Package Viyi.Util
Или установите его через диалог управления пакетами NuGet.
Расширение object
:
.Also()
и .Let()
, поддерживаются их асинхронные версии;ToXxxx()
и ConvertTo()
, которые являются обёрткой без исключений для соответствующих функций System.Convert
;As()
, который решает проблему невозможности применения ключевого слова as
к типам структур (struct);Расширение Linq (Enumerable
):
ForEach()
/ ForEachAsync
;
Примечание: Viyi.Util в настоящее время не поддерживает
IAsyncEnumerable
, рекомендуется использовать System.Linq.Async.
AsToArray()
и AsToList()
, сначала пытаясь применить as
, чтобы максимально избежать повторного создания массивов или объектов списка;MaxBy()
и MinBy()
;List<T>
и T[]
соответственно предоставляются расширения Shuffle()
, используемые для перемешивания внутренних элементов;ViyiEnumerable<T>.Of(params T[])
создаёт IEnumerable<T>
из группы отдельных объектов;Расширение boolean
:
it.Then()
, форма выражения if / if ... else ...
;it.Else()
, форма выражения if not
;it.Then(fnThen, fnElse)
, форма вызова функции ? :
;ViyiRandom
предоставляет инструменты для генерации случайных чисел:
ViyiRandom.Create()
создаёт генератор случайных данных (Random
);
В netstandard2.1 и net6 используется Random.Shared
для генерации случайного семени, в netstandard2.0 используется аналогичный способ, создавая статический и потокобезопасный объект Random
для генерации случайного семени.ViyiRandom.RandomIndexes()
генерирует набор случайных индексов, начинающихся с 0, которые можно использовать для создания случайных данных в определённом порядке;EnumHelper
предоставляет инструменты для работы с перечислениями:
EnumHelper.EnumerateWith()
преобразует значения перечислений в указанный тип объекта IEnumerable
;EnumHelper.GetDescription()
получает описание атрибута [DescriptionAttribute
][description_attribute] для значений перечислений;EnumHelper.EnumerateWithDescription()
аналогично EnumerateWith()
, но анализирует атрибут [DescriptionAttribute
][description_attribute], результаты сохраняются в объекте EnumEntry
;EnumHelper.Enumerate()
возвращает IEnumerable<KeyValuePair>
;EnumHelper.ToNameValueCollection()
возвращает NameValueCollection
(можно поменять местами ключ и значение);Поддержка сравнения и равенства:
LambdaCompare
позволяет создавать объекты IComparer<T>
с помощью Lambda, избегая определения класса;LambdaEqualityComparer
позволяет создавать объекты IEqualityComparer<T>
с помощью Lambda, избегая определения класса;Другие инструменты: Будут проанализированы, подтверждены и реализованы в соответствии с Issue.
Поддерживает:
6.0/5.0
3.1/3.0
Поддерживает:
6.0/5.0
3.1/3.0/2.2/2.1/2.0
4.8/4.7.x/4.7/4.6.2
Предоставляется документация Xml (Viyi.Util.xml
) вместе с пакетом NuGet.
Специализированная документация API не создавалась, но исходный код содержит документацию.
WIKI содержит пояснения к некоторым функциям.
Лицензия MulanPSL2 (MulanPSL2)
Примечание:
В Viyi.Util
v1.x
использовалась лицензия MIT, начиная с версииv2.0
, она была изменена на MulanPSL2.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )