本地化集合(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);
}
答案 0 :(得分:2)
你试过yield项目吗?
public static IEnumerable<string> Localize(this IEnumerable<string> items, CultureInfo culture)
{
foreach (string item in items)
{
yield return ResourceHelper.GetString(item,culture);
}
}
这不会更改您要枚举的集合中的任何其他项目,但它会返回您想要的内容。
答案 1 :(得分: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;
}