Marqdouj.CLRCommon 8.10.1

Prefix Reserved
dotnet add package Marqdouj.CLRCommon --version 8.10.1
                    
NuGet\Install-Package Marqdouj.CLRCommon -Version 8.10.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="Marqdouj.CLRCommon" Version="8.10.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Marqdouj.CLRCommon" Version="8.10.1" />
                    
Directory.Packages.props
<PackageReference Include="Marqdouj.CLRCommon" />
                    
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 Marqdouj.CLRCommon --version 8.10.1
                    
#r "nuget: Marqdouj.CLRCommon, 8.10.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 Marqdouj.CLRCommon@8.10.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=Marqdouj.CLRCommon&version=8.10.1
                    
Install as a Cake Addin
#tool nuget:?package=Marqdouj.CLRCommon&version=8.10.1
                    
Install as a Cake Tool

CLRCommon

CLRCommon is a collection of helper utilities and classes for .NET development.

NuGet Package

The NuGet package can be found here

Demo

  • A demo of this and some of my other NuGet packages can be found here

Features

  • Enum
    • EnumList. Manages a list of Enum (no duplicates)
  • ExceptionExtensions
    • ToMessage(). Resolves all messages recursively. Returns a joined string (optional separator).
    • ToList(). Resolves all messages recursively. Returns a list of messages.
  • FloatingPointExtensions
    • ToStringFormat(). Converts a float, double, or decimal to a string with the option to truncate the decimal places if the value is a whole number (i.e. 1.00 becomes 1).
  • ListExtensions
    • ToDataTable(). Converts a list of objects to a System.Data.DataTable.
  • ObjectExtensions
    • IsNumber(). Checks if the underlying type code is a number.
  • MinMaxN
    • INumber that is constrained between a minimum and maximum value.
    • Provides a StringValue property to convert strings to/from the underlying INumber
  • Paging
    • PagedData - a class to hold the results for paged data
    • PagedRange - a class to calculate a range of pages
    • PageInfo - a class to hold paging information
  • PathExtensions
    • Helper method to resolve a folder locations not supported by Environment.GetFolderPath
      • Currently only the Downloads folder is supported
  • StateContainer
    • Notifcations when a value changes (StateChanged).
    • Supports INotifyPropertyChanged and Action (Blazor)
  • StringExtensions
    • IsNumeric - determines if a string is numeric
    • IsPositiveInteger - determines if a string is a positive integer
    • Left - returns the leftmost characters of a string (Mimics VB's Left function))
    • Right - returns the rightmost characters of a string (Mimics VB's Right function))
    • ToBoolOrNull - converts a string to a Boolean or null (supports Y/N, YES/NO, 1/-1))
    • ToCrLf - Takes a string and converts its line endings to CrLf
    • ToDecimal - converts a string to a decimal
    • ToDecimalOrNull - converts a string to a decimal or null
    • ToDecimalOrValue - converts a string to a decimal or a specified default value
    • ToDouble - converts a string to a double
    • ToDoubleOrNull - converts a string to a double or null
    • ToDoubleOrValue - converts a string to a double or a specified default value
    • ToInt32 - converts a string to an integer
    • ToInt32OrNull - converts a string to an integer or null
    • ToInt32OrValue - converts a string to an integer or a specified default value
    • ToInt32List - converts a delimited string to a list of integers
    • ToInt64 - converts a string to a long
    • ToInt64OrNull - converts a string to a long or null
    • ToInt64OrValue - converts a string to a long or a specified default value
    • ToInt64List - converts a delimited string to a list of longs
    • ToNewLine - Converts line endings to Environment.NewLine
    • ToTitleCase - converts a string to title case using a specified culture (wrapper for TextInfo.ToTitleCase))
    • Truncate - truncates a string to a specified length
  • StringExtensions (Lists)
    • ToInt32List - Converts delimited string of integer to Int32 List
    • ToInt64List - Converts delimited string of long to Int64 List

Release Notes

v8.10.1

  • ObjectExtensions.IsNumber(). Enhanced with INumber<T>.IsAssignableFrom

v8.10.0

  • StateContainer.
    • Added the SetValueB virtual method. Returns true if the value was changed.
    • Changed SetValue to a virtual method.
    • Added the static ValueWillChange method; a pre-check that the value will be changed by the SetValue method. May be used for custom scenarios where logic needs to know if the value would have been changed but the SetValue method will not be invoked.

v8.9.3

  • StateContainer. Added the CallerMemberName attribute to invoke both NotifyStateChanged and NotifyPropertyChanged events. This negates the need to supply a property name when manually invoking the methods in a property set. This also allows to provide a different name if required.

v8.9.2

  • StateContainer. Added the NotifyChanged method to invoke both NotifyStateChanged and NotifyPropertyChanged events.

v8.9.1

  • MinMaxN.StringValue. Store the constuctor initial value as the default value to be used if the value assigned to StringValue can't be converted to the underlying INumber

v8.9.0

  • added MinMaxN.StringValue. Normally used for html text input components that support numbers, i.e. FluentTextField

v8.8.8

  • added ObjectExtensions.IsNumber()

v8.8.7

  • added FloatingPointToStringFormatOptions to FloatingPointExtensions.ToStringFormat()

v8.8.6

  • added Floating Point (decimal, double, float) ToStringFormat() extension method.

v8.8.5

  • added EnumList.ToNames() method. Returns an ordered list of item names.

v8.8.4

  • added EnumList
  • added null check before adding column in ToDataTable

v8.8.3

  • added optional separator to Exception.ToMessage() extension.

v8.8.2

  • override MinMaxN ToString to return the Value

v8.8.1

  • added 'SuppressNotifications' flag to StateContainer

v8.8.0

  • Added [JsonConstructor] to MinMaxN

v8.7.1

  • Added NuGet pkg icon

v8.7.0

  • Fixed bug in MinMaxN calculations for Center/Width properties

v8.6.0 (Depreciated)

  • added Center/Width properties to MinMaxN

v8.5.0

  • MinMaxN
    • added MinMaxN tests to project
    • added constructor without Value parameter
  • added StringExtensions.IsNumeric tests to project
    • added support for null strings in StringExtensions.IsNumeric
  • added StringExtensions.IsPositiveInteger tests to project
    • added support for null strings in StringExtensions.IsPositiveInteger
    • Zero is now considered a positive integer in StringExtensions.IsPositiveInteger

v8.4.0

  • added StringExtensions tests to project
  • found and fixed bug in StringExtensions.ToNewLine

v8.3.0

  • refactored StringExtensions.Truncate.

v8.2.1

  • removed 'AllowUnsafeBlocks' from project file (not needed)
  • added StringExtension Method
    • String.ToNewLine - Converts line endings to Environment.NewLine

v8.2.0

  • Updated Comments
  • added ListExtensions / IEnumerableExtensions
    • ToDataTable - converts a list of objects to a DataTable
  • added PathExtensions
    • GetPath - returns the path of a known folder not supported by Environment.SpecialFolder
      • currently only supports Downloads folder
  • added StringExtensions
  • added Paging helper class

v8.1.1

  • added MinMaxN<T> / INumber<T>: ensures a value is within a min/max range
  • added ExceptionExtensions
    • ToMessage - returns the message of an exception and all inner exceptions
    • ToMessages - returns the message of an exception and all inner exceptions as a list

v8.1.0

  • BREAKING CHANGES.
  • StateContainer: Changed OnChange to StateChanged; added INotifyPropertyChanged support/PropertyChanged
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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.10.1 132 9/11/2025
8.10.0 147 9/4/2025
8.9.3 142 9/3/2025
8.9.1 149 8/31/2025
8.9.0 157 8/29/2025
8.8.8 87 8/22/2025
8.8.7 150 7/26/2025
8.8.6 155 7/26/2025
8.8.5 486 7/21/2025
8.8.4 142 7/17/2025
8.8.3 231 6/9/2025
8.8.2 157 3/16/2025
8.8.1 145 3/16/2025
8.8.0 193 3/10/2025
8.7.1 179 3/9/2025
8.7.0 190 3/9/2025
8.6.0 238 3/8/2025 8.6.0 is deprecated because it has critical bugs.
8.5.0 214 3/6/2025
8.4.0 224 3/6/2025
8.3.0 222 3/6/2025
8.2.1 223 3/6/2025
8.2.0 111 2/24/2025
8.1.1 127 2/17/2025
8.1.0 122 2/17/2025