Method GetRowEnumerator
GetRowEnumerator()
Returns an enumerator that can be used to step through each key and its localized values, such as in a foreach loop. Internally SharedTableData and StringTable's are separate assets with their own internal list of values. This means that when iterating through each key a lookup must be made in each table in order to retrieve the localized value, this can become slow when dealing with a large number of tables and entries. GetRowEnumerator improves this process by first sorting the multiple internal lists and then stepping through each conceptual row at a time. It handles missing keys and table entries and provides a more efficient and faster way to iterate through the tables.
Declaration
public IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> GetRowEnumerator()
Returns
Type | Description |
---|---|
IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> |
Examples
This example shows how a StringTableCollection could be exported as CSV.
[MenuItem("CONTEXT/StringTableCollection/Print CSV")]
public static void CreateCSV(MenuCommand command)
{
var collection = command.context as StringTableCollection;
StringBuilder sb = new StringBuilder();
// Header
sb.Append("Key,");
foreach (var table in collection.StringTables)
{
sb.Append(table.LocaleIdentifier);
sb.Append(",");
}
sb.Append("\n");
// Add each row
foreach (var row in collection.GetRowEnumerator())
{
// Key column
sb.Append(row.KeyEntry.Key);
sb.Append(",");
foreach (var tableEntry in row.TableEntries)
{
// The table entry will be null if no entry exists for this key
sb.Append(tableEntry == null ? string.Empty : tableEntry.Value);
sb.Append(",");
}
sb.Append("\n");
}
// Print the contents. You could save it to a file here.
Debug.Log(sb.ToString());
}
GetRowEnumerator(params StringTable[])
Returns an enumerator that can be used to step through each key and its localized values, such as in a foreach loop. Internally SharedTableData and StringTable's are separate assets with their own internal list of values. This means that when iterating through each key a lookup must be made in each table in order to retrieve the localized value, this can become slow when dealing with a large number of tables and entries. GetRowEnumerator improves this process by first sorting the multiple internal lists and then stepping through each conceptual row at a time. It handles missing keys and table entries and provides a more efficient and faster way to iterate through the tables.
Declaration
public static IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> GetRowEnumerator(params StringTable[] tables)
Parameters
Type | Name | Description |
---|---|---|
StringTable[] | tables |
Returns
Type | Description |
---|---|
IEnumerable<LocalizationTableCollection.Row<StringTableEntry>> |