InlineCollection 1.1.0
See the version list below for details.
dotnet add package InlineCollection --version 1.1.0
NuGet\Install-Package InlineCollection -Version 1.1.0
<PackageReference Include="InlineCollection" Version="1.1.0" />
<PackageVersion Include="InlineCollection" Version="1.1.0" />
<PackageReference Include="InlineCollection" />
paket add InlineCollection --version 1.1.0
#r "nuget: InlineCollection, 1.1.0"
#:package InlineCollection@1.1.0
#addin nuget:?package=InlineCollection&version=1.1.0
#tool nuget:?package=InlineCollection&version=1.1.0
InlineCollection
English | 日本語
Overview
InlineCollection is a library that provides zero-allocation stack-based collections for Unity.
Since Unity uses a relatively old C# version (C# 10), it cannot utilize features like InlineArray or collection expressions that are available in C# 12 and later.
While stackalloc can be used in Unity, it can only create Spans of unmanaged types and cannot allocate arrays of managed types on the stack.
This library adds:
- An
InlineCollectionfeature equivalent to theInlineArrayavailable in C# 12 and later - A convenient functionality to convert
ValueTupletoSpan
Installation
.NET CLI
dotnet add package InlineCollection
Unity
- Install NuGetForUnity
- Open Nuget window and install InlineCollection
Usage
Tuple To Span
You can convert a ValueTuple to a Span:
var span = (1, 2, 3).AsSpan();
foreach (var i in span)
{
Debug.Log(i);
}
Note that all elements in the tuple must be of the same type.
InlineCollection
You can create array-like structures by adding the InlineCollection attribute to a partial struct:
[InlineCollection(length: 3)]
public partial struct SampleInlineCollection<T> {}
Usage example:
using InlineCollection;
var sample = new SampleInlineCollection<string>("a", "b", "C");
sample[0] = "a";
foreach (var s in sample)
{
Debug.Log(s);
}
You can also convert it to a Span:
Span<string> span = sample.AsSpan();
Additionally, you can specify a specific element type by adding type information as an argument to the InlineCollection attribute:
[InlineCollection(elementType: typeof(int), length: 3)]
public partial struct SampleInlineCollection {}
Example:
var sample = new SampleInlineCollection(0, 1, 2);
Learn more about Target Frameworks and .NET Standard.
-
.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.