Kebechet.Extensions.IsNullOrEmpty
1.2.0
Prefix Reserved
dotnet add package Kebechet.Extensions.IsNullOrEmpty --version 1.2.0
NuGet\Install-Package Kebechet.Extensions.IsNullOrEmpty -Version 1.2.0
<PackageReference Include="Kebechet.Extensions.IsNullOrEmpty" Version="1.2.0" />
<PackageVersion Include="Kebechet.Extensions.IsNullOrEmpty" Version="1.2.0" />
<PackageReference Include="Kebechet.Extensions.IsNullOrEmpty" />
paket add Kebechet.Extensions.IsNullOrEmpty --version 1.2.0
#r "nuget: Kebechet.Extensions.IsNullOrEmpty, 1.2.0"
#:package Kebechet.Extensions.IsNullOrEmpty@1.2.0
#addin nuget:?package=Kebechet.Extensions.IsNullOrEmpty&version=1.2.0
#tool nuget:?package=Kebechet.Extensions.IsNullOrEmpty&version=1.2.0
Extensions.IsNullOrEmpty
Small set of C# extension methods to check for null/empty/zero across common types.
Install
Use the .NET CLI:
dotnet add package Kebechet.Extensions.IsNullOrEmpty
Usage
using System;
using System.Collections.Generic;
using IsNullOrEmpty.Extensions;
// Strings
string? s1 = null;
bool a = s1.IsNullOrEmpty(); // true
string? s2 = " ";
bool b = s2.IsNullOrWhiteSpace(); // true
// Collections
IEnumerable<int>? numbers = null;
bool c = numbers.IsNullOrEmpty(); // true
var list = new List<string>();
bool d = list.IsNullOrEmpty(); // true when empty
// Guid
Guid? id1 = null;
bool e = id1.IsNullOrEmpty(); // true
Guid? id2 = Guid.Empty;
bool f = id2.IsNullOrEmpty(); // true
// Numerics (nullable)
int? i = 0;
long? l = null;
double? dbl = 0.0;
decimal? dec = 5m;
float? fl = 0f;
bool g = i.IsNullOrZero(); // true
bool h = l.IsNullOrZero(); // true
bool j = dbl.IsNullOrZero(); // true
bool k = dec.IsNullOrZero(); // false
bool m = fl.IsNullOrZero(); // true
Nullable flow analysis
All methods are annotated with [NotNullWhen(false)], so Roslyn's nullable analysis understands the null check:
string? name = GetName();
if (name.IsNullOrEmpty())
{
return;
}
// No nullable warning here — Roslyn knows name is not null
Console.WriteLine(name.Length);
API
string?:IsNullOrEmpty()IsNullOrWhiteSpace()
IEnumerable<T>?:IsNullOrEmpty()
Guid?:IsNullOrEmpty()
- Numerics (
sbyte?,byte?,short?,ushort?,int?,uint?,long?,ulong?,double?,decimal?,float?):IsNullOrZero()
| 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 was computed. 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
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Kebechet.Extensions.IsNullOrEmpty:
| Package | Downloads |
|---|---|
|
Kebechet.Maui.RevenueCat.InAppBilling
Serves as an abstraction around RevenueCat Android and iOS SDKs https://docs.revenuecat.com/docs |
GitHub repositories
This package is not used by any popular GitHub repositories.
Broadened IsNullOrZero to all integral types (sbyte, byte, short, ushort, uint, ulong); added an ICollection/IReadOnlyCollection fast-path to IEnumerable.IsNullOrEmpty; applied AggressiveInlining to all extension methods.