3

コレクション (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);
}
4

2 に答える 2

2

あなたがアイテムを産む何かを試しましたか?

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

これは、列挙しているコレクション内の他のアイテムを変更しませんが、必要なものを返します。

于 2008-10-20T19:39:39.207 に答える
1

ローカライズされた値の新しい列挙可能なコレクションを返すように簡単に変更します。

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;
}
于 2008-10-20T20:13:48.840 に答える