使用匿名类型(C#)调用泛型方法



假设我想迭代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");

相关内容

  • 没有找到相关文章

最新更新