---
title: TitleCase
summary: API reference for TitleCase.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Business.Utilities
reference_type: package
---

# TitleCase

`TitleCase` is a static utility class that converts free-text strings to title case, applying domain-specific abbreviation and exception handling (insurance/legal entity suffixes, directional abbreviations, state codes, mixed-case names, numeric suffixes).

## Purpose
- Convert an input string to title case using configured word-list rule tables rather than a naive per-word capitalization algorithm.

## Context
- Namespace: `SAIF.Business.Utilities`
- Assembly/package: `SAIF.Business.Utilities` (NuGet package `SAIF.BOF.Business.Utilities`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ToTitleCase | `Public Shared Function ToTitleCase(inString As String) As String` | Splits the input string into words on non-alphanumeric boundaries, classifies each word against configured casing rule tables, reassembles the string preserving original delimiter characters, and applies an exact-suffix list (e.g., possessive `'s`) as a final pass. |

<!-- The following private members are implementation details of TitleCase and are not part of the public surface, but are documented here for completeness since they define the casing behavior consumers observe through ToTitleCase. -->

## Behavioral notes
- Word classification uses private shared rule tables: `UpperCaseWordList` (e.g., "SAIF", "LLC", "MD" — always rendered uppercase), `MixedCaseWordList` (e.g., "PhD", "LaCombe" — rendered per an exact mixed-case mapping), `LowerCaseWordList` (e.g., "is", "in", "the" — minor words always rendered lowercase), `MixedCasePrefixList` (e.g., "Mc", "O'" — mixed-case name prefixes), `MixedCaseSuffixList`, and `NumberSuffixes` (e.g., "1st", "2nd" — numeric ordinal suffix handling).
- Private helper methods `ReassembleString` (2 overloads), `TitleCaseSingleWord`, `ApplyExactSuffixList`, `HasNumberSuffix`, and `GetNumberSuffixParts` implement the internal word-processing pipeline; they are not callable outside this class.
- See [BR-001](../../business-rules.md#br-001-fixed-case-rendering-of-configured-abbreviations) for the fixed-case rendering rule enforced by this class.
- The class holds no public or private instance state — all members are `Shared`, making calls stateless and thread-safe with respect to instance data.*

## Constraints and usage notes
- Consumers should call `ToTitleCase` directly, or via the equivalent `String.ToTitleCase()` extension method defined in `TitleCaseExtensions`, which simply forwards to this method.
- The word-list rule tables are fixed at compile time; there is no runtime configuration mechanism to add or remove abbreviation entries.*

> **Note:** Statements marked with `*` are inferred from code behavior rather than explicit documentation or comments.

## Sources
- `Business\SAIF.Business.Utilities\TitleCase.vb`
