DotExtensions 9.4.1

Prefix Reserved
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package DotExtensions --version 9.4.1
                    
NuGet\Install-Package DotExtensions -Version 9.4.1
                    
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="DotExtensions" Version="9.4.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DotExtensions" Version="9.4.1" />
                    
Directory.Packages.props
<PackageReference Include="DotExtensions" />
                    
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 DotExtensions --version 9.4.1
                    
#r "nuget: DotExtensions, 9.4.1"
                    
#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 DotExtensions@9.4.1
                    
#: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=DotExtensions&version=9.4.1
                    
Install as a Cake Addin
#tool nuget:?package=DotExtensions&version=9.4.1
                    
Install as a Cake Tool

DotExtensions

An extension member library that enhances the experience of using .NET's types with useful features.

Now updated to take advantage of C# 14 as of version 9.

NOTE: Version 9.0 and onwards requires projects using DotExtension to set the C# language version to 14 or higher.

NuGet Latest Pre-release NuGet NuGet License

Table of Contents

Features

  • Empty directory detection via IsDirectoryEmpty extension method for the DirectoryInfo class.
  • Support for comparing versions via easy-to-understand methods e.g. version.IsNewerThan(Version otherVersion) etc.
  • DateTime and DateOnly extensions e.g. DateOnly's ToDateTime extension
  • Support for Detecting and Removing Special Characters
  • Support for Detecting and Removing Escape Characters

^1 - StringSegment extensions are part of the DotExtensions.MsExtensions package.

How to install and use DotExtensions

DotExtensions can be installed via the .NET SDK CLI, Nuget via your IDE or code editor's package interface, or via the Nuget website.

Package Name Nuget Link .NET SDK CLI command
DotExtensions DotExtensions Nuget dotnet add package DotExtensions
DotExtensions.Memory DotExtensions.Memory Nuget dotnet add package DotExtensions.Memory
DotExtensions.MsExtensions DotExtensions.MsExtensions Nuget dotnet add package DotExtensions.MsExtensions

Compatibility

DotExtensions supports:

  • .NET Standard 2.0 (Limited Support)
  • .NET 8
  • .NET 9
  • .NET 10

However, it is important to note that not all features may be supported by all TFMs.

Note for DateOnly: Though DateOnly was originally part of .NET 6, this library's DateOnly extension methods are only supported for .NET 8 and newer .NET users since we don't target .NET 6 as a TFM due to being out of support.

How to Build the code

Please see Building.md.

How to Contribute

Thank you in advance for considering contributing to DotExtensions.

Please see the CONTRIBUTING.md file for code and localization contributions.

If you want to file a bug report or suggest a potential feature to add, please check out the GitHub issues page to see if a similar or identical issue is already open. If there is not already a relevant issue filed, please file one here and follow the respective guidance from the appropriate issue template.

Roadmap

DotExtensions aims to make working with different types in the System namespace in C# easier.

All stable releases must be stable and should not contain regressions.

Future updates should aim to focus on one or more of the following:

  • Adding extension methods that improve ease of use
  • Enhancing existing extension methods

Note: This library is not a primitive library and also does not seek to add new interfaces or implementations of interfaces. It is purely a library for extension methods.

License

This project is licensed under the MIT license.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on DotExtensions:

Package Downloads
CliInvoke

CliInvoke is a .NET Library for interacting with Command Line Interfaces, CliInvoke is a library for interacting with Command Line Interfaces and wrapping around executables.

EnhancedLinq.Memory

LINQ style Immediate enumeration mode extension methods for Spans and Memory.

EnhancedLinq

Additional LINQ style Deferred and Immediate enumeration mode extension methods for .NET .

EnhancedLinq.Async

Additional LINQ style Deferred and Immediate enumeration mode extension methods for .NET .

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.5.0-preview.1 42 1/21/2026
9.4.1 266 1/21/2026
9.4.0 126 1/18/2026
9.3.2 92 1/16/2026
9.3.1 284 1/10/2026
9.3.0 664 12/22/2025

* Updated internal Polyfill version from 9.7.3 to 9.7.4
* Fixed a bug where ``ContainsSpacesExtensions`` class used an outdated namespace prefix - This is a breaking change and may cause errors if these methods were used previously.