Skip to content

Extension Methods Reference

This page provides an overview of the extension methods available in Nextended.Core.

String Extensions

Located in Nextended.Core.Extensions.StringExtensions

Case Conversions

MethodDescriptionExample
ToCamel()Converts to camelCase"hello world""helloWorld"
ToPascalCase()Converts to PascalCase"hello world""HelloWorld"

Validation

MethodDescription
IsNullOrEmpty()Checks if string is null or empty
IsNullOrWhiteSpace()Checks if string is null, empty, or whitespace
IsValidEmail()Validates email format
IsValidUrl()Validates URL format

Manipulation

MethodDescription
Truncate(int length)Truncates string to specified length
RemoveWhitespace()Removes all whitespace characters
Reverse()Reverses the string
Left(int length)Returns leftmost characters
Right(int length)Returns rightmost characters

DateTime Extensions

Located in Nextended.Core.Extensions.DateTimeExtensions

Business Days

MethodDescription
AddWeekDays(int days)Adds week days (skips weekends)
IsWeekday()Checks if the date is a week day (IsWeekend() is the inverse)
IsWeekend()Checks if date is weekend
NextBusinessDay()Gets next business day

Date Operations

MethodDescription
StartOfDay()Returns start of day (00:00:00)
EndOfDay()Returns end of day (23:59:59)
StartOfWeek()Returns start of week
EndOfWeek()Returns end of week
StartOfMonth()Returns start of month
EndOfMonth()Returns end of month

Collection Extensions (IEnumerable<T>)

Located in Nextended.Core.Extensions.EnumerableExtensions

LINQ Enhancements

MethodDescription
Batch(int size)Splits collection into batches
DistinctBy<TKey>(Func<T, TKey> keySelector)Distinct by property
ForEach(Action<T> action)Performs action on each element
ForEach(Action<T, int> action)ForEach with index

Safe Operations

MethodDescription
SafeAny()Safe Any() that handles null collections
SafeCount()Safe Count() that handles null collections
SafeFirstOrDefault()Safe FirstOrDefault() that handles null

Utility Methods

MethodDescription
IsNullOrEmpty()Checks if collection is null or empty
None()Opposite of Any()
WhereNotNull()Filters out null elements

Object Extensions

Located in Nextended.Core.Extensions.ObjectExtensions

Mapping

See the Class Mapping Reference for comprehensive documentation, examples, and usage scenarios.

MethodDescription
MapTo<TTarget>()Maps object to target type
MapTo<TTarget>(ClassMappingSettings)Maps with custom settings
MapTo<TTarget>(TTarget target)Maps to existing instance
MapToAsync<TTarget>()Maps object asynchronously
MapElementsTo<T>()Maps each element in collection

Cloning

MethodDescription
CloneDeep()Creates a deep copy of the object (namespace Nextended.Core.DeepClone)
ShallowClone()Creates shallow copy of object

Reflection

MethodDescription
GetPropertyValue(string name)Gets property value by name
SetPropertyValue(string name, object value)Sets property value by name
HasProperty(string name)Checks if property exists

Type Extensions

Located in Nextended.Core.Extensions.TypeExtensions

Type Inspection

MethodDescription
IsNumeric()Checks if type is numeric
IsNullable()Checks if type is nullable
GetUnderlyingType()Gets underlying type of nullable
HasAttribute<T>()Checks for attribute
GetAttribute<T>()Gets attribute instance

Property Operations

MethodDescription
GetPublicProperties()Gets all public properties
GetProperty(string name)Gets property by name
CreateInstance()Creates new instance of type

Task Extensions

Located in Nextended.Core.Extensions.TaskExtensions

Async Utilities

MethodDescription
WithTimeout(TimeSpan)Adds timeout to async operation
FireAndForget()Executes task without waiting
FireAndForget(Action<Exception>)Fire and forget with error handler
WaitSafely()Safe synchronous wait

Serialization Extensions

Located in Nextended.Core.Extensions.SerializationHelper

JSON

MethodDescription
ToJson()Serializes to JSON
ToJson(Formatting)Serializes with formatting
FromJson<T>()Deserializes from JSON

XML

MethodDescription
ToXml()Serializes to XML
FromXml<T>()Deserializes from XML

YAML

MethodDescription
ToYaml()Serializes to YAML
FromYaml<T>()Deserializes from YAML

Usage Examples

String Extensions

csharp
using Nextended.Core.Extensions;

string text = "hello world";
string camelCase = text.ToCamel();         // "helloWorld"
string pascalCase = text.ToPascalCase();   // "HelloWorld"
bool isEmail = "test@example.com".IsValidEmail(); // true

Collection Extensions

csharp
using Nextended.Core.Extensions;

var numbers = new[] { 1, 2, 3, 4, 5 };

// Batch processing
foreach (var batch in numbers.Batch(2))
{
    // Process batch
}

// Safe operations
List<int> nullList = null;
bool hasItems = nullList.SafeAny(); // false, no exception

Object Mapping

csharp
using Nextended.Core.Extensions;

var source = new SourceClass { Name = "John" };
var target = source.MapTo<TargetClass>();

// With settings
var settings = ClassMappingSettings.Default
    .IgnoreProperties<SourceClass>(s => s.InternalField);
var result = source.MapTo<TargetClass>(settings);

Task Extensions

csharp
using Nextended.Core.Extensions;

// Add timeout
var result = await LongRunningOperationAsync()
    .WithTimeout(TimeSpan.FromSeconds(30));

// Fire and forget
SendEmailAsync().FireAndForget(
    ex => Logger.LogError(ex, "Email failed")
);

See Also