EnhancedLinq.Async
1.0.0
Prefix Reserved
See the version list below for details.
dotnet add package EnhancedLinq.Async --version 1.0.0
NuGet\Install-Package EnhancedLinq.Async -Version 1.0.0
<PackageReference Include="EnhancedLinq.Async" Version="1.0.0" />
<PackageVersion Include="EnhancedLinq.Async" Version="1.0.0" />
<PackageReference Include="EnhancedLinq.Async" />
paket add EnhancedLinq.Async --version 1.0.0
#r "nuget: EnhancedLinq.Async, 1.0.0"
#:package EnhancedLinq.Async@1.0.0
#addin nuget:?package=EnhancedLinq.Async&version=1.0.0
#tool nuget:?package=EnhancedLinq.Async&version=1.0.0
EnhancedLinq.Async
This library provides asynchronous versions of the EnhancedLinq extensions, targeting IAsyncEnumerable<T> for deferred and immediate enumeration modes.
EnhancedLinq.Async requires consuming projects to use C# language version 14 or newer for EnhancedLinq to work.
🚀 Included Methods
For a comprehensive list of included methods, check out the following resources:
📦 NuGet Packages
The EnhancedLinq.Async package provides IAsyncEnumerable supporting extensions for EnhancedLinq.
🛠️ Installing EnhancedLinq.Async
Getting started with EnhancedLinq.Async is easy! You can install the package using the .NET SDK CLI, your IDE's package manager, or directly from the NuGet website.
| Package Id | NuGet Link | .NET SDK CLI Command |
|---|---|---|
| EnhancedLinq.Async | EnhancedLinq.Async NuGet | dotnet add package EnhancedLinq.Async |
📖 Usage
Here are some examples demonstrating how to use some methods provided by EnhancedLinq.Async.
Deferred Execution Examples
ElementsAt This example shows how to find the elements at a given sequence of indices asynchronously.
async IAsyncEnumerable<string> GetFruitsAsync()
{
yield return "Apple";
yield return "Banana";
yield return "Cherry";
yield return "Date";
yield return "Elderberry";
}
IAsyncEnumerable<string> fruits = GetFruitsAsync();
int[] indices = [1, 3]; // We want to retrieve "Banana" and "Date"
IAsyncEnumerable<string> selectedFruits = fruits.ElementsAt(indices);
Console.WriteLine("Selected Fruits:");
await foreach (string fruit in selectedFruits)
{
Console.WriteLine(fruit); // Outputs: Banana, Date
}
Immediate Enumeration Mode Examples
ContainsDuplicates
This example shows how to check asynchronously if an IAsyncEnumerable<T> contains any duplicate elements.
async IAsyncEnumerable<string> GetFruitsAsync()
{
yield return "Apple";
yield return "Banana";
yield return "Cherry";
yield return "Apple"; // Contains a duplicate
}
IAsyncEnumerable<string> fruits = GetFruitsAsync();
bool hasDuplicates = await fruits.ContainsDuplicates();
Console.WriteLine($"Does the list contain duplicates? {hasDuplicates}"); // Output: True
🏗️ Building
To build EnhancedLinq.Async from source, follow these steps:
- Clone the repository.
- Open the solution in your preferred IDE or Code Editor.
- Build the desired project to restore dependencies and compile the project.
🤝 Contributing
I welcome contributions. If you have ideas for new features, improvements, or bug fixes, please check out the contributing guidelines for more information.
📜 License
EnhancedLinq.Async is licensed under the MPL 2.0 license. Feel free to use and modify EnhancedLinq according to the terms of the license.
❓ Questions?
If you have any questions or experience any issues, please open a discussion in the repository's GitHub issues page.
🔄 Alternatives
While EnhancedLinq.Async is a powerful tool, you may wish to explore these alternatives:
| 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 is compatible. 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
- DotExtensions (>= 10.3.1)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.7)
- System.Linq.AsyncEnumerable (>= 10.0.7)
-
net10.0
- DotExtensions (>= 10.3.1)
-
net8.0
- DotExtensions (>= 10.3.1)
- System.Linq.AsyncEnumerable (>= 10.0.7)
-
net9.0
- DotExtensions (>= 10.3.1)
- System.Linq.AsyncEnumerable (>= 10.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
No changes since 1.0.0 rc 2