Каков наилучший способ локализовать IEnumerable? - PullRequest
3 голосов
/ 20 октября 2008

Каков наилучший способ локализации коллекции (IEnumerable)? Из BL я извлекаю коллекцию объектов, которые все еще должны быть локализованы, я решил написать метод, который расширяет IEnumerable и возвращает локализованный список.

Как я могу получить код под рабочим? Есть идеи? Может быть, лучшие варианты?

public static IEnumerable Localize(this IEnumerable items, CultureInfo cultureInfo)
{
    foreach(string item in items)
    {
        /*Error underneath, cannot assign to item*/
        item = ResourceHelper.GetString(item, cultureInfo);
    }
    return (items);
}

Ответы [ 2 ]

2 голосов
/ 20 октября 2008

вы пробовали что-то, где вы приносите предмет?

public static IEnumerable<string> Localize(this IEnumerable<string> items, CultureInfo culture)
{
    foreach (string item in items)
    {
        yield return ResourceHelper.GetString(item,culture);
    }
}

это не изменит другие элементы в коллекции, над которой вы перечисляете, но вернет то, что вы хотите.

1 голос
/ 21 октября 2008

Простое изменение, чтобы заставить его возвращать новую перечисляемую коллекцию локализованных значений:

public static IEnumerable<string> Localize(this IEnumerable<string> items, CultureInfo cultureInfo)
{
    List<string> newItems = new List<string>();
    foreach(string item in items)
    {
       newItems.Add( ResourceHelper.GetString(item, cultureInfo) );
    }
    return newItems;
}
...