C# 对象列表
本文关键字:列表 对象 | 更新日期: 2023-09-27 18:31:48
我不确定如何创建对象列表。我得到"非可调用成员ListObjects.TestObject.UniqueID"不能像方法一样使用。
任何见解都会有所帮助。
我正在尝试创建以下列表的对象的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ListObjects
{
class TestObject
{
public int UniqueID { get; set; }
}
}
主代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ListObjects
{
class Program
{
static void Main(string[] args)
{
TestObject TestObject = new TestObject();
List<TestObject> ObjectList = new List<TestObject>();
ObjectList.Add(new TestObject().UniqueID(1));
ObjectList.Add(new TestObject().UniqueID(10));
ObjectList.Add(new TestObject().UniqueID(39));
}
}
}
public int UniqueID { get; set; } 不是一个方法,它是一个二传手,你可以像使用方法一样使用它
这样做
ObjectList.Add(new TestObject()
{
UniqueID = 1
});
我无法回忆语法,但它来自内存:
改写这行:
ObjectList.Add(new TestObject().UniqueID(1));
用这一行:
ObjectList.Add(new TestObject(){UniqueID = 1});
并为所有人做同样的事情.添加您拥有的行。
你像使用方法一样使用 UniqueId。它是一个属性,必须分配。如果您知道在创建 TestObject 时将分配一个 ID,则应使构造函数支持该 ID,并相应地使用它。如果没有,请使用 ObjectList.Add(new TestObject { UniqueID = 1 });
分配不带构造函数的值。
这就是我处理这种情况的方式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ListObjects
{
class TestObject
{
public int UniqueID { get; set; }
public TestObject(int uniqueId)
{
UniqueID = uniqueId;
}
}
}
主代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ListObjects
{
class Program
{
static void Main(string[] args)
{
List<TestObject> ObjectList = new List<TestObject>();
ObjectList.Add(new TestObject(1));
ObjectList.Add(new TestObject(10));
ObjectList.Add(new TestObject(39));
}
}
}
这里有几件事。 您不需要对象的实例来声明列表,只需要类型即可。
此外,UniqueID
是一个属性,而不是一个方法。 您为它们赋值(或从中读取值),不会像方法的参数那样传入值。
您还可以在一次调用中初始化列表,如下所示:
List<TestObject> ObjectList = new List<TestObject>()
{ new TestObject() { UniqueID = 1},
new TestObject() { UniqueID = 10 },
new TestObject() { UniqueID = 39 } };
这将导致一个新的List<T>
,其中T
的类型是TestObject
,并且列表被初始化为TestObject
的3个实例,每个实例都用UniqueID
的值初始化。
TestObject TestObject = new TestObject();
删除此行。
并将以下行编辑为此语法
new TestObject { UniqueID = 39 }