GuidExtensions
Provides GUID manipulation and validation utilities.
Overview
The GuidExtensions class offers utilities for GUID operations including validation, formatting, and sequential GUID generation.
API Reference
Core Methods
Validation Operations
IsEmpty(Guid guid)
Checks if a GUID is empty (all zeros).
var emptyGuid = Guid.Empty;
var isEmptyGuid = emptyGuid.IsEmpty(); // true
var newGuid = Guid.NewGuid();
var isNewEmpty = newGuid.IsEmpty(); // false
IsValid(string guidString)
Validates if a string represents a valid GUID.
bool valid1 = "123e4567-e89b-12d3-a456-426614174000".IsValidGuid(); // true
bool valid2 = "invalid-guid-string".IsValidGuid(); // false
Sequential GUID Operations
GetPlusOne(Guid guid)
Generates the next sequential GUID (useful for database optimization).
var baseGuid = Guid.Parse("123e4567-e89b-12d3-a456-426614174000");
var nextGuid = baseGuid.GetPlusOne();
// Results in the next sequential GUID
Practical Examples
Database Entity Management
public class EntityIdGenerator
{
private Guid _lastGeneratedId = Guid.Empty;
public Guid GenerateSequentialId()
{
if (_lastGeneratedId.IsEmpty())
{
_lastGeneratedId = Guid.NewGuid();
}
else
{
_lastGeneratedId = _lastGeneratedId.GetPlusOne();
}
return _lastGeneratedId;
}
}
Input Validation
public class GuidValidator
{
public ValidationResult ValidateGuidInput(string input)
{
if (string.IsNullOrWhiteSpace(input))
{
return new ValidationResult("GUID cannot be empty");
}
if (!input.IsValidGuid())
{
return new ValidationResult("Invalid GUID format");
}
var guid = Guid.Parse(input);
if (guid.IsEmpty())
{
return new ValidationResult("GUID cannot be empty");
}
return ValidationResult.Success;
}
}
Best Practices
- Empty Validation: Always check for empty GUIDs in business logic
- String Validation: Validate GUID strings before parsing
- Sequential GUIDs: Use for database performance optimization
- Immutability: Remember that GUIDs are immutable value types