gpt4 book ai didi

c# - object[] = object[] f = new object[] 和 var f = new [] 的区别?

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:49 24 4
gpt4 key购买 nike

我是C#的新手,我想在最近的项目中使用匿名类型,但我遇到了一个困惑的问题,需要你的帮助。我一开始使用 object[] 但出现错误。代码如下所示:

        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

但是这段代码很有用:

    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;

我只想使用匿名类型的列表并访问它的成员。我的方法有什么问题,我应该怎么做才能达到我的目标?

最佳答案

Object 没有Age 属性。因此,第一种方法无法编译,因为您已将匿名类型装箱为对象。

第二个之所以有效,是因为编译器知道它是哪种(匿名)类型。

您不能在当前方法之外使用匿名类型。因此,我建议使用具体类型。

class Person
{
public int Age{ get;set; }
public string Name{ get;set; }
}

现在使用它:

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;

关于c# - object[] = object[] f = new object[] 和 var f = new [] 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com