Skip to main content
Version: 4.0 (next)

Humanizer.PluralizationForms

PluralizationForms Class​

Provides authored singular and plural forms of one noun.

public sealed class PluralizationForms

Inheritance System.Object → PluralizationForms

Remarks​

Humanizer applies the supported culture's cardinal plural rule to select an authored form. Missing selected forms are not inferred.

Constructors​

PluralizationForms(string, string, string, string, string, string, string) Constructor​

Creates a set of authored singular and plural forms.

public PluralizationForms(string singular, string other, string? zero=null, string? one=null, string? two=null, string? few=null, string? many=null);
Parameters​

singular System.String

The noun's singular form.

other System.String

The form for the CLDR other category.

zero System.String

The form for the CLDR zero category, or null when unavailable.

one System.String

The form for the CLDR one category, or null when unavailable.

two System.String

The form for the CLDR two category, or null when unavailable.

few System.String

The form for the CLDR few category, or null when unavailable.

many System.String

The form for the CLDR many category, or null when unavailable.

Exceptions​

System.ArgumentException
singular or other is empty or whitespace, or an optional supplied form is empty or whitespace.

System.ArgumentNullException
singular or other is null.

Properties​

PluralizationForms.Few Property​

Gets the form for the CLDR few category.

public string? Few { get; }
Property Value​

System.String

PluralizationForms.Many Property​

Gets the form for the CLDR many category.

public string? Many { get; }
Property Value​

System.String

PluralizationForms.One Property​

Gets the form for the CLDR one category.

public string? One { get; }
Property Value​

System.String

PluralizationForms.Other Property​

Gets the form for the CLDR other category.

public string Other { get; }
Property Value​

System.String

PluralizationForms.Singular Property​

Gets the noun's singular form.

public string Singular { get; }
Property Value​

System.String

PluralizationForms.Two Property​

Gets the form for the CLDR two category.

public string? Two { get; }
Property Value​

System.String

PluralizationForms.Zero Property​

Gets the form for the CLDR zero category.

public string? Zero { get; }
Property Value​

System.String

Methods​

PluralizationForms.Invariant(string) Method​

Creates forms for a noun that remains unchanged in every cardinal category.

public static Humanizer.PluralizationForms Invariant(string word);
Parameters​

word System.String

The invariant word.

Returns​

PluralizationForms
A form set containing word for every category.

Exceptions​

System.ArgumentException
word is empty or whitespace.

System.ArgumentNullException
word is null.

PluralizationForms.TryPluralize(decimal, CultureInfo, string) Method​

Attempts to pluralize this noun for a quantity using the supported culture's cardinal plural rule.

public bool TryPluralize(decimal quantity, System.Globalization.CultureInfo culture, out string? result);
Parameters​

quantity System.Decimal

The quantity. Its encoded decimal scale supplies CLDR visible-fraction operands.

culture System.Globalization.CultureInfo

The supported culture whose cardinal plural rule is applied.

result System.String

The selected authored form when available; otherwise, null.

Returns​

System.Boolean
true when the selected form is available; otherwise, false.

Exceptions​

System.ArgumentNullException
culture is null.

PluralizationForms.TrySingularize(string, string) Method​

Attempts to resolve one of this noun's exact authored forms to its singular form.

public bool TrySingularize(string form, out string? result);
Parameters​

form System.String

An exact authored form.

result System.String

The singular form when form matches; otherwise, null.

Returns​

System.Boolean
true when form matches an authored form; otherwise, false.

Exceptions​

System.ArgumentNullException
form is null.

Remarks​

Matching is Unicode NFC-normalized, ordinal, and case-sensitive.