# ILocalizedStringList

> Interface for resolving a localized list of strings.

## Definition

* **Type:** Interface
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule

```csharp
public interface ILocalizedStringList
```

## Remarks

Implementations resolve one or more table entries into an ordered list, for example the options of a dropdown. Subscribe to [ILocalizedStringList.ListChanged](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/listchanged.md) to receive the values and every later change, including locale switches, or resolve on demand with [ILocalizedStringList.GetLocalizedList](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/getlocalizedlist.md) and [ILocalizedStringList.GetLocalizedListAsync](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/getlocalizedlistasync.md). The built-in implementations are [LocalizedStringList](/engine/6000.7/script-reference/unity/localization/localizedstringlist.md), which splits one entry on a separator, and [LocalizedStringGroup](/engine/6000.7/script-reference/unity/localization/localizedstringgroup.md), which combines several entries.

Additional Resources: [LocalizedStringList](/engine/6000.7/script-reference/unity/localization/localizedstringlist.md), [LocalizedStringGroup](/engine/6000.7/script-reference/unity/localization/localizedstringgroup.md), [LocalizeStringListEvent](/engine/6000.7/script-reference/unity/localization/components/localizestringlistevent.md)

Resolve a list of options and fill a dropdown.

## Examples

```csharp
using System.Collections.Generic;
using Unity.Localization;
using UnityEngine;

namespace Unity.Localization.Samples
{
    public class LocalizedStringListExample
    {
        public async Awaitable Load()
        {
            // The entry's value holds every option, for example "Low,Medium,High".
            var options = new LocalizedStringList { Separator = "," };
            options.SetReference("My Strings", "QUALITY OPTIONS");
            List<string> values = await options.GetLocalizedListAsync();
            Debug.Log(values.Count);
        }
    }
}
```

## Methods

| Method                                                                                                                    | Description                                              |
| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| [GetLocalizedList](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/getlocalizedlist.md)           | Resolves the localized values without waiting.           |
| [GetLocalizedListAsync](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/getlocalizedlistasync.md) | Resolves the localized values, loading tables as needed. |

## Events

| Member                                                                                                | Description                                                                                       |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [ListChanged](/engine/6000.7/script-reference/unity/localization/ilocalizedstringlist/listchanged.md) | Raised with the localized values when the list first resolves and again whenever a value changes. |
