An extension method library that enhances the experience of using .NET's types with useful features.
- 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 AlastairLundy.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 |
|---|---|---|
| AlastairLundy.DotExtensions | AlastairLundy.DotExtensions Nuget | dotnet add package AlastairLundy.DotExtensions |
| AlastairLundy.DotExtensions.MsExtensions | AlastairLundy.DotExtensions.MsExtensions Nuget | dotnet add package AlastairLundy.DotExtensions.MsExtensions |
DotExtensions supports:
- .NET Standard 2.0 (Limited Support)
- .NET 8
- .NET 9
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 .NET 9 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.