假设我想迭代string[][]
,使用匿名类型附加一个值,并对结果执行通用的ForEach Extension方法(我知道这是一个很好的例子,但我想你会得到它的最佳结果!)。
这是我的代码:
//attrs = some string[][]
attrs.Select(item => new { name = HttpContext.GetGlobalResourceObject("Global", item[0].Remove(0, 7)), value = item[1] })
.ForEach</*????*/>(/*do stuff*/);
我应该在ForEach的类型参数中到底放什么?
以下是ForEach的样子:
public static void ForEach<T>(this IEnumerable<T> collection, Action<T> act)
{
IEnumerator<T> enumerator = collection.GetEnumerator();
while (enumerator.MoveNext())
act(enumerator.Current);
}
您不需要显式指定类型,因为它可以从提供的参数中推断出来:
attrs.Select(item => new
{
name = HttpContext.GetGlobalResourceObject("Global",
item[0].Remove(0, 7)),
value = item[1]
})
.ForEach(x => x.name = "something");