CoreSuite.Extensions 2.0.0

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

CoreSuite.Extensions

General-purpose string and collection utilities for .NET 8 applications.

CoreSuite.Extensions is one of the libraries included in the CoreSuite solution. It targets plain .NET 8 and has no CoreSuite or third-party package dependencies.

Overview

CoreSuite.Extensions provides small, reusable operations for manipulating strings and retrieving a single object from a collection. The package includes character and word reversal, word counting, diacritic removal, title and camel-case conversion, first-occurrence replacement, extra-space removal and object creation when a collection contains no matching element.

Because the package does not depend on Windows Forms, it can be used in desktop applications, services, console applications, class libraries and other .NET 8 projects.

Features

  • Reverses all characters in a string.
  • Reverses the order of space-separated words.
  • Counts words separated by spaces, tabs or line breaks.
  • Removes accents and other Unicode non-spacing marks.
  • Converts text to title case using the current culture.
  • Converts space-, underscore- or hyphen-separated text to camel case.
  • Replaces only the first occurrence of a substring.
  • Collapses repeated spaces between text fragments.
  • Retrieves a single collection element or creates a new instance when no element is found.
  • Includes English XML documentation for the public API.
  • Requires no third-party packages.

Requirements

  • .NET 8 (net8.0)

Installation

Install the package from NuGet:

dotnet add package CoreSuite.Extensions

Or use the Visual Studio NuGet Package Manager and search for:

CoreSuite.Extensions

Namespace

Import the namespace containing the extension modules:

Imports CoreSuite.Extensions.Extensions

Quick start

Imports CoreSuite.Extensions.Extensions

Dim ReversedText As String = "CoreSuite".ReverseText()
Dim ReversedWords As String = "CoreSuite Extensions".ReverseWords()
Dim WordCount As Integer = "Reusable .NET utilities".CountWords()
Dim UnaccentedText As String = "Configuração".ToUnaccented()
Dim CamelName As String = "customer-order_number".ToCamel()
Dim CompactText As String = "CoreSuite    Extensions".RemoveExtraSpaces()

API reference

String extensions

Member Behavior
ReverseText() Returns the characters in reverse order.
ReverseWords() Returns space-separated words in reverse order.
CountWords() Counts fragments separated by spaces, tabs, carriage returns or line feeds.
ToUnaccented() Decomposes Unicode text and removes non-spacing marks.
ToTitle() Converts text to title case using the current thread culture.
ToCamel() Converts words separated by spaces, underscores or hyphens to camel case.
ReplaceFirst(oldValue, newValue) Replaces only the first occurrence of oldValue.
RemoveExtraSpaces() Removes empty fragments created by repeated space characters.

Collection utility

Member Behavior
FirstOrNew(source, predicate) Returns the single matching element or attempts to create a new instance of the collection element type when no match exists.

String examples

Reverse characters or words

Dim Characters As String = "Hello World".ReverseText()
Dim Words As String = "Hello World".ReverseWords()

The results are dlroW olleH and World Hello, respectively.

Normalize text for comparison

Dim SearchText As String = "João da Silva".ToUnaccented().ToLowerInvariant()

ToUnaccented removes Unicode non-spacing marks. It does not perform case conversion, so a separate casing operation can be applied when required.

Convert naming styles

Dim Title As String = "CUSTOMER ORDER".ToTitle()
Dim PropertyName As String = "customer-order_number".ToCamel()

ToTitle and the casing operations used by ToCamel are culture-sensitive.

Replace only the first occurrence

Dim Result As String = "one two one".ReplaceFirst("one", "first")

The result is first two one.

Remove repeated spaces

Dim Result As String = "CoreSuite    Extensions".RemoveExtraSpaces()

The result is CoreSuite Extensions. This method treats the space character as its separator; tabs and line breaks are not collapsed.

Retrieve one element or create a new instance

FirstOrNew uses single-element semantics. It is useful when a query should return zero or one item and the calling code prefers a newly created object when no match exists.

Imports CoreSuite.Extensions.Extensions

Dim Customer As Customer = CollectionExtensions.FirstOrNew(Customers, Function(Item) Item.Id = CustomerId)

Important behavior:

  • More than one matching element causes InvalidOperationException.
  • When no element is found, the method attempts to create the item type through Activator.CreateInstance.
  • Nothing is returned when the type cannot be created with a parameterless constructor.
  • The source collection must not be Nothing.

Empty-value behavior

Member Nothing or empty input
ReverseText Returns String.Empty.
ReverseWords Returns String.Empty.
CountWords Returns 0.
ToUnaccented Returns String.Empty.
ToTitle Returns Nothing.
ToCamel Requires a non-Nothing string.
ReplaceFirst Requires valid input and search values.
RemoveExtraSpaces Requires a non-Nothing string.

Package information

Item Value
Package CoreSuite.Extensions
Namespace CoreSuite.Extensions.Extensions
Assembly CoreSuite.Extensions
Target framework net8.0
CoreSuite dependencies None
External dependencies None

License

This package is distributed under the MIT License defined by the CoreSuite repository.

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
2.0.0 117 8/17/2026
1.0.0 119 8/3/2026

Fix namespace.