PreFetchFirstElementEnumerable 1.0.0

.NET Standard 2.0 .NET Framework 4.0
Install-Package PreFetchFirstElementEnumerable -Version 1.0.0
dotnet add package PreFetchFirstElementEnumerable --version 1.0.0
<PackageReference Include="PreFetchFirstElementEnumerable" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PreFetchFirstElementEnumerable --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PreFetchFirstElementEnumerable, 1.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install PreFetchFirstElementEnumerable as a Cake Addin
#addin nuget:?package=PreFetchFirstElementEnumerable&version=1.0.0

// Install PreFetchFirstElementEnumerable as a Cake Tool
#tool nuget:?package=PreFetchFirstElementEnumerable&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

PreFetchFirstElementEnumerable

Library that provides a wrapper around an existing IEnumerable<T> which immediately pre-fetches the first element of the source. This means that any up-front initiation code is executed immediately, rather than when later iterated over, but retains the lazy streaming nature of the IEnumerable<T> for all later elements.

An example practical use-case could be initiating the SQL Query backing an EntityFramework streamed query.

Version History

  • v1.0.0 Added Documentation. Package is Live.
  • v0.9.9 Fixed issue with re-using the IEnumerable and Unit Tests.
  • v0.9.1 Forgot to update release notes.
  • v0.9.0 Initial Code with no Docs or Tests
  • v0.0.1 Blank project to wire up infrastructure

Example Usage

public void Example(IEnumberable<int> inputEnumerable)
{
  var prefetchedEnumerable = new PreFetchFirstElementEnumerable<int>(inputEnumerable);
  var alternatePrefetchEnumerable = inputEnumerable.InitiatePrefetchOfFirstElement();
  var anotherEnumerableWithExplicitTyping = inputEnumerable.InitiatePrefetchOfFirstElement<int>();
}

public void UntypedExample(IEnumberable inputUntypedEnumerable)
{
  IEnumerable<object> prefetchedEnumerable = new PreFetchFirstElementEnumerable<object>(inputEnumerable.Cast<object>);
  IEnumerable<object> aDifferentEnumerable = inputEnumerable.InitiatePrefetchOfFirstElement();
}
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.0

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 513 8/11/2019
0.9.9 315 8/11/2019
0.9.1 318 8/4/2019
0.9.0 318 8/4/2019
0.0.1 306 8/4/2019

* v1.0.0 Added Documentation. Package is Live.
   * v0.9.9 Fixed issue with re-using the IEnumerable and Unit Tests.
   * v0.9.1 Forgot to update release notes.
   * v0.9.0 Initial Code with no Docs or Tests
   * v0.0.1 Blank project to wire up infrastructure