Net4x.ValueTuple
1.4.0.2
dotnet add package Net4x.ValueTuple --version 1.4.0.2
NuGet\Install-Package Net4x.ValueTuple -Version 1.4.0.2
<PackageReference Include="Net4x.ValueTuple" Version="1.4.0.2" />
<PackageVersion Include="Net4x.ValueTuple" Version="1.4.0.2" />
<PackageReference Include="Net4x.ValueTuple" />
paket add Net4x.ValueTuple --version 1.4.0.2
#r "nuget: Net4x.ValueTuple, 1.4.0.2"
#:package Net4x.ValueTuple@1.4.0.2
#addin nuget:?package=Net4x.ValueTuple&version=1.4.0.2
#tool nuget:?package=Net4x.ValueTuple&version=1.4.0.2
Net4x.ValueTuple
Compatibility shims and minimal implementation of System.ValueTuple and related compiler attributes for older .NET frameworks.
This project provides lightweight types and attributes that make it possible to use C# tuple syntax ((T1, T2)) and tuple element names in projects that target older .NET Framework versions which don't include the built-in System.ValueTuple types.
Features
- Types and attributes to bring
ValueTuplesupport to legacy frameworks TupleElementNamesAttributeand other compiler-support attributes required for named tuples- Multi-targeted to support a wide range of TFMs
Supported target frameworks
This repository includes builds for multiple target frameworks, for example:
- .NET Framework 2.0 / 3.0 / 3.5 / 4.0 / 4.5 / 4.6.1 / 4.7
- .NET Standard 2.0 / 2.1
- .NET 5.0
(See the project files for the exact TFMs used by each project configuration.)
Installation
Install the package from NuGet (if published) or add the source project to your solution.
Using the Package Manager Console:
Install-Package Net4x.ValueTuple
Or using dotnet (when applicable):
dotnet add package Net4x.ValueTuple
If you are consuming the project as source, add the Net4x.ValueTuple project to your solution and reference it from your projects targeting legacy frameworks.
Usage
After referencing the library you can use tuple syntax and named tuples in code that targets older frameworks. Example:
// Example method returning a tuple
public (int Id, string Name) GetPerson()
{
return (42, "Alice");
}
// Deconstructing a tuple
var (id, name) = GetPerson();
Console.WriteLine($"Id={id}, Name={name}");
Keep in mind that language support for tuple syntax comes from the C# compiler; this package provides the runtime types and attributes needed for older frameworks.
Building
Open the solution in Visual Studio and build normally. For SDK-style or compatible projects you can also use:
dotnet build
Note: Some older-targeting projects require building with Visual Studio because they use older project formats and toolsets.
Contributing
Contributions, bug reports and pull requests are welcome. Please follow these guidelines:
- Open an issue to discuss significant changes before implementing them.
- Keep changes small and focused.
- Include tests or a small example when relevant.
Authors
- Piero Viano
License
This project is licensed under the Apache-2.0 license. See the LICENSE.txt file for details.
| 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 | 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 is compatible. |
| .NET Framework | net20 is compatible. net30 is compatible. net35 is compatible. net40 is compatible. net403 was computed. net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 is compatible. 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. |
-
.NETFramework 2.0
- Net30.LinqBridge (>= 1.6.0.2)
-
.NETFramework 3.0
- Net30.LinqBridge (>= 1.6.0.2)
-
.NETFramework 3.5
- Net35.Actions (>= 1.4.0.2)
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.5
- System.ValueTuple (>= 4.5.0)
-
.NETFramework 4.6.1
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
NuGet packages (28)
Showing the top 5 NuGet packages that depend on Net4x.ValueTuple:
| Package | Downloads |
|---|---|
|
Net4x.Runtime.CompilerServices.Unsafe
System.Runtime.CompilerServices.Unsafe |
|
|
Net4x.BaseTypes
Package Description |
|
|
Net35.Threading.Tasks
The Mono port of the Task Parallel Library ported to .NET 3.5 |
|
|
Net4x.Runtime.Caching
System.Runtime.Caching.dll |
|
|
Net4x.CoreLibrary.Interfaces.Common
CoreLibrary Interfaces |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.0.2 | 22 | 12/30/2025 |
| 1.4.0.1 | 1,461 | 12/21/2025 |
| 1.4.0 | 30,034 | 3/31/2025 |
| 1.1.0 | 31,615 | 8/26/2023 |
| 1.1.0-at20230430051928 | 10,304 | 5/8/2023 |
| 1.0.0-at20230411060430 | 16,418 | 4/14/2023 |
| 1.0.0-at20230409091416 | 484 | 4/9/2023 |
| 1.0.0-at20230409083532 | 535 | 4/9/2023 |
| 1.0.0-at20230409060557 | 314 | 4/9/2023 |
| 1.0.0-at20230408 | 446 | 4/8/2023 |