DataUnits 1.0.2

dotnet add package DataUnits --version 1.0.2
                    
NuGet\Install-Package DataUnits -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DataUnits" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataUnits" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="DataUnits" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DataUnits --version 1.0.2
                    
#r "nuget: DataUnits, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DataUnits@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DataUnits&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=DataUnits&version=1.0.2
                    
Install as a Cake Tool

DataUnits

DataUnits allows easier handling of byte size representation. (Bytes, KB, MB, GB, TB)

License: MIT NuGet

How to use it

You can create a ByteSize object from Bits, bytes, kilobytes, megabytes, gigabytes and terabytes.

  • JsonConverter and TypeConverter are already available.
ByteSize bytes = ByteSize.FromBytes(10);
ByteSize kilobytes = ByteSize.FromKilobytes(10);
ByteSize megabytes = ByteSize.FromMegabytes(10);
ByteSize gigabytes = ByteSize.FromGigabytes(10);
ByteSize terabytes = ByteSize.FromTerabytes(10);

Calculate bit rate

BitRate bitRate = ByteSize.FromBytes(1) / TimeSpan.FromSeconds(2); //4
TimeSpan time = ByteSize.FromBytes(1) / BitRate.FromBits(4); //2
ByteSize byteSize = BitRate.FromBits(8) * TimeSpan.FromSeconds(2); //2

Parsing

ByteSize bytes = ByteSize.Parse("1"); //if no size is specified, byte is used
ByteSize bytes = ByteSize.Parse("1 B");
ByteSize bytes = ByteSize.Parse("1 b"); //ignores case
ByteSize kilobytes = ByteSize.Parse("1 KB");
ByteSize gigabytes = ByteSize.Parse(" 1GB "); //ignores whitespaces
ByteSize gigabytes = ByteSize.Parse("1.1 GB", CultureInfo.Invariant);

Formattable

ByteSize.FromBytes(1024).ToString(CultureInfo.InvariantCulture); // "1 KB"
ByteSize.FromKilobytes(1.5).ToString(CultureInfo.InvariantCulture); // "1.5 KB"

//use explicit unit
ByteSize.FromMegabytes(1).ToString(ByteUnit.Kilobyte, null, CultureInfo.InvariantCulture); //"1,024 KB"

Comparable

bool result = ByteSize.FromBytes(1024) == ByteSize.FromKilobytes(1);
bool result = ByteSize.FromBytes(100) > ByteSize.FromKilobytes(1);

Operators

long value = ByteSize.FromBytes(1024); //returns byte value

ByteSize size = 1024; //use byte unit

Arithmetic operations

ByteSize a = ByteSize.FromBytes(10) + ByteSize.FromMegabytes(5);
ByteSize b = ByteSize.FromMegabytes(100) - ByteSize.FromMegabytes(5);

a = a.AddTerabytes(10);

JSON

JsonSerializer.Serialize(ByteSize.FromKilobytes(1)); //returns byte value as number

TypeConverter

In your appsettings.json you can specify the byte size in different types:

{
  "MaxContentLength": 1024
}
{
  "MaxContentLength": "1024"
}
{
  "MaxContentLength": "1 KB"
}
Product Compatible and additional computed target framework versions.
.NET 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on DataUnits:

Package Downloads
ImageWizard.Core

Image processing middleware based on ASP.NET and ImageSharp / SkiaSharp / SvgNet.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 206 5/4/2025
1.0.1 126 5/2/2025
1.0.0 156 4/27/2025