Soenneker.Extensions.Enumerable
4.0.652
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Extensions.Enumerable --version 4.0.652
NuGet\Install-Package Soenneker.Extensions.Enumerable -Version 4.0.652
<PackageReference Include="Soenneker.Extensions.Enumerable" Version="4.0.652" />
<PackageVersion Include="Soenneker.Extensions.Enumerable" Version="4.0.652" />
<PackageReference Include="Soenneker.Extensions.Enumerable" />
paket add Soenneker.Extensions.Enumerable --version 4.0.652
#r "nuget: Soenneker.Extensions.Enumerable, 4.0.652"
#:package Soenneker.Extensions.Enumerable@4.0.652
#addin nuget:?package=Soenneker.Extensions.Enumerable&version=4.0.652
#tool nuget:?package=Soenneker.Extensions.Enumerable&version=4.0.652
Soenneker.Extensions.Enumerable
A collection of helpful enumerable extension methods
Installation
dotnet add package Soenneker.Extensions.Enumerable
Usage
IEnumerable should have IsNullOrEmpty() too
var populatedList = new List<string>{"foo", "bar", "foo"};
populatedList.IsNullOrEmpty() // false
populatedList.Populated() // true
populatedList.None() // false
One call checking for null and contains any elements
List<string>? nullList = null;
nullList.IsNullOrEmpty() // true
nullList.Populated() // false
Duplicate handling
var containsDuplicates = populatedList.ContainsDuplicates(); // true
var deduped = populatedList.RemoveDuplicates(); // {"foo", "bar"}
Recursive flattening
public class Node
{
public string Name {get; set;}
public List<Node> Children {get; set;}
}
void Example()
{
var node = new Node(){ Name = "Node1" };
node.Children = new List()
{
new Node()
{
Name = "Node2"
}
}
List<Node>? children = node.Children.ToFlattenedFromRecursive(c => c.Children);
// Results in flattened List:
// { Node1, Node2 }
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Soenneker.Extensions.Task (>= 4.0.127)
- Soenneker.Extensions.ValueTask (>= 4.0.118)
- Soenneker.Utils.Random (>= 4.0.128)
NuGet packages (12)
Showing the top 5 NuGet packages that depend on Soenneker.Extensions.Enumerable:
| Package | Downloads |
|---|---|
|
Soenneker.Extensions.Enumerable.String
A collection of helpful enumerable string extension methods |
|
|
Soenneker.Dictionaries.SingletonKeys
An externally initializing singleton dictionary that uses double-check asynchronous locking, with optional async and sync disposal |
|
|
Soenneker.Utils.String
A utility library for useful String operations |
|
|
Soenneker.Blazor.TomSelect
A Blazor interop library for the select user control library, Tom Select |
|
|
Soenneker.Swashbuckle.Authentication
A middleware implementing basic authentication and RBAC support for Swashbuckle (Swagger) |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.692 | 22,290 | 10/26/2026 |
| 11.0.690 | 333 | 10/26/2026 |
| 4.0.689 | 3,402 | 10/26/2026 |
| 4.0.688 | 59,442 | 10/15/2026 |
| 4.0.686 | 1,377 | 10/14/2026 |
| 4.0.685 | 361 | 10/14/2026 |
| 4.0.684 | 2,219 | 10/14/2026 |
| 4.0.678 | 9,999 | 10/13/2026 |
| 4.0.676 | 1,804 | 10/12/2026 |
| 4.0.674 | 11,426 | 10/12/2026 |
| 4.0.673 | 530 | 10/12/2026 |
| 4.0.672 | 25,426 | 10/12/2026 |
| 4.0.670 | 952 | 10/11/2026 |
| 4.0.669 | 140,871 | 9/24/2026 |
| 4.0.668 | 583 | 9/24/2026 |
| 4.0.667 | 60,907 | 9/15/2026 |
| 4.0.666 | 15,424 | 9/15/2026 |
| 4.0.665 | 42,772 | 9/13/2026 |
| 4.0.664 | 22,220 | 9/12/2026 |
| 4.0.652 | 127 | 8/29/2026 |
Update dependency Soenneker.Extensions.Task to 4.0.127 (#745)