Jun*_* HU 1 c# anonymous-types
我是C#的新手,我想在最近的项目中使用匿名类型,但我面临一个需要你帮助的混乱问题.我首先使用对象[]但是我收到错误.代码如下所示:
List<object> f = new List<object>();
f.Add(new { Name = 1, Age = 31 });
f.Add(new { Name = 2, Age = 31 });
f.Add(new { Name = 3, Age = 4 });
f.Add(new { Name = 4, Age = 1 });
f.Add(new { Name = 5, Age = 1 });
var a = f[0].Age; // no use
Run Code Online (Sandbox Code Playgroud)
但是这段代码很有用:
var f = new []
{
new { Name = 1, Age = 31 },
new { Name = 2, Age = 31 },
new { Name = 3, Age = 4 },
new { Name = 4, Age = 1 },
new { Name = 5, Age = 1 }
};
var a = f[0].Age;
Run Code Online (Sandbox Code Playgroud)
我只想使用匿名类型的List并访问它的成员.我的方法有什么问题,我该怎么做才能实现目标?
一个Object没有Age财产.因此,第一种方法不会编译,因为您已将匿名类型装箱为对象.
第二种方法有效,因为编译器知道它是哪种(匿名)类型.
您不能在当前方法之外使用匿名类型.因此我建议使用具体类型.
class Person
{
public int Age{ get;set; }
public string Name{ get;set; }
}
Run Code Online (Sandbox Code Playgroud)
现在使用:
var f = new List<Person>(){
new Person{ Name = "1", Age = 31 },
new Person{ Name = "2", Age = 31 },
new Person{ Name = "3", Age = 4 },
new Person{ Name = "4", Age = 1 },
new Person{ Name = "5", Age = 1 }
};
var a = f[0].Age;
Run Code Online (Sandbox Code Playgroud)