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 回答