Reo.Core.PredicateBuilder
10.0.31
See the version list below for details.
dotnet add package Reo.Core.PredicateBuilder --version 10.0.31
NuGet\Install-Package Reo.Core.PredicateBuilder -Version 10.0.31
<PackageReference Include="Reo.Core.PredicateBuilder" Version="10.0.31" />
<PackageVersion Include="Reo.Core.PredicateBuilder" Version="10.0.31" />
<PackageReference Include="Reo.Core.PredicateBuilder" />
paket add Reo.Core.PredicateBuilder --version 10.0.31
#r "nuget: Reo.Core.PredicateBuilder, 10.0.31"
#:package Reo.Core.PredicateBuilder@10.0.31
#addin nuget:?package=Reo.Core.PredicateBuilder&version=10.0.31
#tool nuget:?package=Reo.Core.PredicateBuilder&version=10.0.31
Reo.Core.PredicateBuilder
Описание пакета
Reo.Core.PredicateBuilder — это утилита для создания динамических предикатов, которые можно использовать в LINQ-запросах для фильтрации данных. Пакет упрощает работу с условиями, особенно при построении сложных фильтров, которые могут изменяться в зависимости от входных параметров. Основные функции включают:
- Создание предикатов для строк (например, поиск с учетом регистра, проверка на пустоту).
- Проверка на наличие значений в коллекциях.
- Сравнение идентификаторов сущностей.
- Поддержка работы с nullable-типами.
Основные компоненты
- PredicateBuilder: Основной класс, предоставляющий методы для построения предикатов.
- CallStringMethodCaseInsensitive: Метод для выполнения строковых операций (например,
Contains,StartsWith) с учетом регистра. - CallSelectorWithEnumerableContainsMethod: Проверка наличия значения в коллекции.
- GetIdComparisonExpression: Создание выражения для сравнения идентификатора сущности с заданным значением.
- GetIsNullOrWhiteSpaceExpression: Проверка строки на пустоту или наличие только пробелов.
- GetHasValueExpression: Проверка nullable-типа на наличие значения.
Требования
- Совместимость с .NET:
- .NET Standard 2.1
- .NET 8.0
- .NET 9.0
- Дополнительные зависимости: Пакет не требует внешних зависимостей.
Установка
NuGet Package Manager
Install-Package Reo.Core.PredicateBuilder
.NET CLI
dotnet add package Reo.Core.PredicateBuilder
Настройка
Пакет не требует регистрации в DI-контейнере. Его можно использовать напрямую в коде, создавая экземпляры
PredicateBuilder и используя его методы.
Использование
Пример 1: Проверка строки на включение подстроки (не зависящее от регистра)
var predicate = PredicateBuilder.CallStringMethodCaseInsensitive(
x => x.Name,
"test",
nameof(string.Contains)
);
Пример 2: Проверка, что строка не пустая и не состоит из пробелов
var predicate = PredicateBuilder.GetIsNullOrWhiteSpaceExpression(
x => x.Description,
applyNegative: true
);
Пример 3: Проверка наличия значения в коллекции
var predicate = PredicateBuilder.CallSelectorWithEnumerableContainsMethod(
x => x.Tags,
"Important",
applyNegative: false
);
Пример 4: Сравнение идентификатора сущности
var predicate = PredicateBuilder.GetIdComparisonExpression(
id: 123,
selectorBody: x => x.Id
);
Лицензия
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- JetBrains.Annotations (>= 2025.2.4)
- LinqKit.Core (>= 1.2.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Reo.Core.Database.Abstractions (>= 10.0.31)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.ComponentModel.Annotations (>= 5.0.0)
-
net10.0
- JetBrains.Annotations (>= 2025.2.4)
- LinqKit.Core (>= 1.2.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Reo.Core.Database.Abstractions (>= 10.0.31)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Reo.Core.PredicateBuilder:
| Package | Downloads |
|---|---|
|
Reo.Core.Database
Package Description |
|
|
Reo.Core.DistributedCache
Package Description |
|
|
Reo.MnoApi.Sensors
Package Description |
|
|
Reo.Core.Events
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.32 | 0 | 2/13/2026 |
| 10.0.31 | 0 | 2/13/2026 |
| 10.0.30 | 35 | 2/12/2026 |
| 10.0.29 | 40 | 2/12/2026 |
| 10.0.28 | 81 | 2/11/2026 |
| 10.0.27 | 102 | 2/11/2026 |
| 10.0.26 | 159 | 2/9/2026 |
| 10.0.25 | 155 | 2/9/2026 |
| 10.0.24 | 172 | 2/9/2026 |
| 10.0.23 | 161 | 2/9/2026 |
| 10.0.22 | 159 | 2/9/2026 |
| 10.0.21 | 161 | 2/9/2026 |
| 10.0.20 | 155 | 2/9/2026 |
| 10.0.15 | 177 | 2/6/2026 |
| 10.0.14 | 174 | 2/6/2026 |
| 10.0.13 | 376 | 2/4/2026 |
| 10.0.12 | 191 | 2/3/2026 |
| 10.0.11 | 198 | 2/2/2026 |
| 10.0.10 | 200 | 1/29/2026 |
| 10.0.9 | 189 | 1/29/2026 |