在C#3.0中,您可以使用以下语法创建匿名类
var o = new { Id = 1, Name = "Foo" };
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些匿名类添加到通用列表?
例:
var o = new { Id = 1, Name = "Foo" };
var o1 = new { Id = 2, Name = "Bar" };
List<var> list = new List<var>();
list.Add(o);
list.Add(o1);
Run Code Online (Sandbox Code Playgroud)
另一个例子:
List<var> list = new List<var>();
while (....)
{
....
list.Add(new {Id = x, Name = y});
....
}
Run Code Online (Sandbox Code Playgroud) 标题有点模糊.我想知道的是,如果可能的话:
string typeName = <read type name from somwhere>;
Type myType = Type.GetType(typeName);
MyGenericClass<myType> myGenericClass = new MyGenericClass<myType>();
Run Code Online (Sandbox Code Playgroud)
显然,MyGenericClass被描述为:
public class MyGenericClass<T>
Run Code Online (Sandbox Code Playgroud)
现在,编译器抱怨'找不到类型或命名空间'myType'."必须有办法做到这一点.
如何使用反射创建具有自定义类(List <CustomClass>)的通用List?我需要能够添加值并用于
propertyInfo.SetValue(..., ..., ...)存储它.我将这些List <>存储为其他数据结构会更好吗?
编辑:
我应该指出对象更像是这样,但Marc Gravell的回答仍然有效.
class Foo
{
public List<string> Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)