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.
- Empty directory detection via
IsDirectoryEmptyextension method for theDirectoryInfoclass. - 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.
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 |
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.
Please see Building.md.
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.
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.
This project is licensed under the MIT license.