AInq.Optional
4.1.0
dotnet add package AInq.Optional --version 4.1.0
NuGet\Install-Package AInq.Optional -Version 4.1.0
<PackageReference Include="AInq.Optional" Version="4.1.0" />
<PackageVersion Include="AInq.Optional" Version="4.1.0" />
<PackageReference Include="AInq.Optional" />
paket add AInq.Optional --version 4.1.0
#r "nuget: AInq.Optional, 4.1.0"
#:package AInq.Optional@4.1.0
#addin nuget:?package=AInq.Optional&version=4.1.0
#tool nuget:?package=AInq.Optional&version=4.1.0
AInq.Optional


What is it?
Simple optional types with basic helpers and converters
Maybe<T>value or nothingTry<T>value or errorEither<TLeft, TRight>value either value
AInq.Optional - Types and basic helpers
AInq.Optional.Async - Async helpers and extensions
New in 4.1
Large refactoring and internal optimization with some breaking changes
- Remove build targets for STS .Net versions
System.Linqis used for collection extensions, which may cause minor behavior changesSystem.Linq.AsyncEnumerableis used in .net10 with minor API changes- Change some methods to remove ambiguity
- Rename
Maybe.AsTrytoMaybe.TryValue - Rename
Try.AsMaybetoTry.MaybeValue - Rename converter
Maybe.OrtoMaybe.EitherValue - Make
boolcast operators explicit
- Rename
- Remove all
Try<T>extensions, which can implicitly hide exceptions Try.MaybeValuenow throw exception if source is not success, introduced flag to suppress this- Save exception stacktrace in
Try<T> - New APIs
|(or) operator forMaybe<T>!(not) operator forMaybe<T>andTry<T>!(invert) operator forEither<TLeft, TRight>Maybe.Valuescollection extension with filteringTry.Resultwith additional generator parameter
New in 3.0
For version 3.0 this lib was completely rewritten with some breaking changes
- All types are now
classinstead ofstruct - Remove some logically obscure methods
IComparableimplementation (problems with comparingnulland empty item)- Type cast operators (unused)
Try.SelectOrDefaultandTry.ValueOrDefault(implicitly hides error, can be replaced withTry.AsMaybe)
- Async extensions completely rewritten using
ValueTaskand moved to separate package
Contribution
If you find a bug, have a question or something else - you are friendly welcome to open an issue.
License
Copyright © 2021 Anton Andryushchenko. AInq.Optional is licensed under Apache License 2.0
| 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 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. 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. 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.0
- No dependencies.
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on AInq.Optional:
| Package | Downloads |
|---|---|
|
AInq.Background.Scheduler
Background work utilities for .NET Core apps based on Hosted services. Background work scheduler with cron. |
|
|
AInq.Background.Scheduler.Abstraction
Background work utilities for .NET Core apps based on Hosted services. Work scheduler interfaces and helpers. |
|
|
AInq.Bitrix24.Api
Bitrix24 Rest API implementation |
|
|
AInq.Optional.Async
Async extensions for optional types |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 4.1.0 | 347 | 12/18/2025 | |
| 4.0.1 | 384 | 12/5/2025 | |
| 4.0.0-preview.3 | 175 | 11/14/2025 | |
| 4.0.0-preview.2 | 200 | 11/14/2025 | |
| 4.0.0-preview.1 | 204 | 11/14/2025 | |
| 3.9.1 | 371 | 11/12/2025 | |
| 3.9.0 | 471 | 11/11/2025 | |
| 3.9.0-rc.3 | 180 | 11/6/2025 | |
| 3.9.0-rc.2 | 172 | 10/22/2025 | |
| 3.9.0-rc | 290 | 10/15/2025 | |
| 3.8.9 | 329 | 10/15/2025 | |
| 3.8.8 | 477 | 9/10/2025 | |
| 3.8.7 | 516 | 8/11/2025 | |
| 3.8.6 | 388 | 7/9/2025 | |
| 3.8.5 | 567 | 6/11/2025 | |
| 3.8.4 | 383 | 6/2/2025 | |
| 3.8.3 | 481 | 5/14/2025 | |
| 3.8.2 | 372 | 4/26/2025 | |
| 3.8.1 | 475 | 4/15/2025 | |
| 3.8.0 | 533 | 4/2/2025 | |
| 3.7.2 | 511 | 3/9/2025 | |
| 3.7.1 | 906 | 11/17/2024 | |
| 3.7.0 | 469 | 11/13/2024 | |
| 3.6.0 | 528 | 8/19/2024 | |
| 3.5.2 | 1,813 | 11/20/2023 | |
| 3.5.1 | 946 | 11/17/2023 | |
| 3.4.1 | 2,901 | 12/3/2022 | |
| 3.4.0 | 1,677 | 11/14/2022 | |
| 3.4.0-preview.2 | 299 | 10/13/2022 | |
| 3.4.0-preview.1 | 233 | 10/2/2022 | |
| 3.3.1 | 2,237 | 8/9/2022 | |
| 3.3.0 | 2,722 | 5/11/2022 | |
| 3.2.1 | 2,285 | 3/27/2022 | |
| 3.2.0 | 2,257 | 3/23/2022 | |
| 3.2.0-rc.2 | 243 | 3/23/2022 | |
| 3.2.0-rc.1 | 264 | 3/19/2022 | |
| 3.1.0 | 1,280 | 3/18/2022 | |
| 3.1.0-rc.7 | 243 | 3/18/2022 | |
| 3.1.0-rc.6 | 255 | 3/17/2022 | |
| 3.1.0-rc.5 | 246 | 3/16/2022 | |
| 3.1.0-rc.4 | 239 | 3/16/2022 | |
| 3.1.0-rc.3 | 274 | 3/16/2022 | |
| 3.1.0-rc.2 | 245 | 3/16/2022 | |
| 3.1.0-rc.1 | 254 | 3/15/2022 | |
| 3.0.3 | 2,637 | 12/27/2021 | |
| 3.0.2 | 1,013 | 12/18/2021 | |
| 3.0.1 | 1,475 | 12/14/2021 | |
| 3.0.0 | 1,487 | 12/13/2021 | |
| 2.1.0 | 1,256 | 12/3/2021 | |
| 2.0.3 | 1,192 | 11/21/2021 | |
| 2.0.2 | 856 | 11/18/2021 | |
| 2.0.1 | 819 | 11/18/2021 | |
| 2.0.0 | 1,536 | 11/8/2021 | |
| 2.0.0-rc.4 | 477 | 11/5/2021 | |
| 2.0.0-rc.3 | 452 | 11/2/2021 | |
| 2.0.0-rc.2 | 469 | 10/12/2021 | |
| 2.0.0-rc.1 | 474 | 10/7/2021 | |
| 1.1.0-preview.3 | 449 | 10/6/2021 | |
| 1.1.0-preview.2 | 500 | 9/15/2021 | |
| 1.1.0-preview | 985 | 8/23/2021 | |
| 1.0.5 | 1,367 | 5/21/2021 | |
| 1.0.4 | 1,102 | 5/19/2021 | |
| 1.0.3.1 | 2,135 | 5/10/2021 | |
| 1.0.2 | 1,975 | 3/14/2021 | |
| 1.0.1 | 1,115 | 3/14/2021 | |
| 1.0.0.1 | 1,129 | 3/10/2021 | |
| 1.0.0 | 1,099 | 3/10/2021 |
[IMP] Change some methods to remove ambiguity (see README)