标题有点乱。我将尝试用一个例子来解释。考虑以下代码:
String[] str={"Apple","Banana","Cherry","Orange"};
var anoCollection=from e in str select new
{
ch=e[0],
length=e.Length
}
dataGridView.DataSource=anoCollection.ToList(); //TypeInitializationException
我觉得我需要为 ToList<T>()
提及上述案例中的类型方法。但是我怎么能在这里提到匿名类型呢?
最佳答案
永远不可能直接提及匿名类型,但您不需要这样做。通用类型推断意味着您不需要指定 <T>
在.ToList<T>()
- 编译器将自动注入(inject)发明的类型。
只有几种方法可以引用匿名类型:
- 通过
someObj.GetType()
, 其中someObj
是匿名类型的实例 - 通过泛型,作为
T
,通过泛型类型推断调用泛型方法(如ToList()
) - 反射的各种其他用法,拉入
T
通过GetGenericTypeParameters()
关于c# - 如何在使用泛型时指定匿名类型的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139744/