# ListFormatter

> Formats each item individually when the source value is an array (or supports ICollection). Syntax: #1: "format|spacer" #2: "format|spacer|last spacer" #3: "format|spacer|last spacer|two spacer" The format will be used for each item in the collection, the spacer will be between all items, and the last spacer will replace the spacer for the last item only. Example: CustomFormat("{Dates:D|; |; and }", {#1/1/2000#, #12/31/2999#, #9/9/9999#}) = "January 1, 2000; December 31, 2999; and September 9, 9999" In this example, format = "D", spacer = "; ", and last spacer = "; and " Advanced: Composite Formatting is allowed in the format by using nested braces. If a nested item is detected, Composite formatting will be used. Example: CustomFormat("{Sizes:{Width}x{Height}|, }", {new Size(4,3), new Size(16,9)}) = "4x3, 16x9" In this example, format = "{Width}x{Height}". Notice the nested braces.

## Definition

* **Type:** Class
* **Namespace:** [Unity.SmartStrings.Extensions](/engine/6000.7/script-reference/unity/smartstrings/extensions.md)
* **Assembly:** UnityEngine.SmartStringsModule
* **Inherits from:** [FormatterBase](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/formatterbase.md)
* **Implements:** [IFormatter](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iformatter.md), [ISource](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/isource.md), [IInitializer](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iinitializer.md), [IFormatterLiteralExtractor](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iformatterliteralextractor.md)

```csharp
public class ListFormatter : FormatterBase, IFormatter, ISource, IInitializer, IFormatterLiteralExtractor
```

## Remarks

The [ListFormatter](/engine/6000.7/script-reference/unity/smartstrings/extensions/listformatter.md) PluralLocalizationExtension and ConditionalExtension

## Constructors

| Constructor                                                                                            | Description                              |
| ------------------------------------------------------------------------------------------------------ | ---------------------------------------- |
| [ListFormatter()](/engine/6000.7/script-reference/unity/smartstrings/extensions/listformatter/ctor.md) | Creates a new instance of the formatter. |

## Properties

| Property                                                                                              | Description                                                                                                 |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| [SplitChar](/engine/6000.7/script-reference/unity/smartstrings/extensions/listformatter/splitchar.md) | The character used to split the option text literals. Valid characters are: \| (pipe) , (comma)  \~ (tilde) |

## Methods

| Method                                                                                                                    | Description                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [TryEvaluateFormat](/engine/6000.7/script-reference/unity/smartstrings/extensions/listformatter/tryevaluateformat.md)     | Writes the given [IFormattingInfo](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iformattinginfo.md) to the [IOutput](/engine/6000.7/script-reference/unity/smartstrings/core/output/ioutput.md) if it can be processed by the formatter. |
| [TryEvaluateSelector](/engine/6000.7/script-reference/unity/smartstrings/extensions/listformatter/tryevaluateselector.md) | Allows an integer to be used as a selector to index an array (or list). This is better described using an example: CustomFormat("\{Dates.2.Year}", \{#1/1/2000#, #12/31/2999#, #9/9/9999#}) = "9999" The ".2" selector is used to reference Dates\[2].         |

## Inheritance

**Inherited Members:**

* [FormatterBase.DefaultName()](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/formatterbase/defaultname.md)
