C# C.对象清单

C# C.对象清单,c#,C#,我不知道如何创建对象列表。我获取不可开票的成员ListObjects.TestObject.UniqueID'不能像方法一样使用 任何见解都会有所帮助 我正在尝试创建以下对象列表的对象的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ListObjects { class TestObject { public

我不知道如何创建对象列表。我获取不可开票的成员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));

        }
    }
}
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));

        }
    }
}

public int UniqueID{get;set;}不是一个方法,而是一个setter,您可以像使用方法一样使用它

这样做

ObjectList.Add(new TestObject()
{
    UniqueID = 1
});
拆下这条线

并将以下行编辑到此语法

new TestObject { UniqueID = 39 }

我无法记忆语法,但它来自记忆:

重新安装此行:

ObjectList.Add(new TestObject().UniqueID(1));
ObjectList.Add(new TestObject(){UniqueID = 1});
这一行:

ObjectList.Add(new TestObject().UniqueID(1));
ObjectList.Add(new TestObject(){UniqueID = 1});

对所有人都这样做。添加你有的行。

这里有几件事要做。声明列表不需要对象的实例,只需要类型

此外,UniqueID是一个属性,而不是一个方法。您为它们赋值或从中读取值,而不是像方法的参数那样传入值

您还可以在一次调用中初始化列表,如下所示:

List<TestObject> ObjectList = new List<TestObject>() 
                 { new TestObject() { UniqueID = 1}, 
                   new TestObject() { UniqueID = 10 },
                   new TestObject() { UniqueID = 39 } };

这将产生一个新的列表,其中T是TestObject类型,列表初始化为TestObject的3个实例,每个实例都用UniqueID的值初始化。

您像使用方法一样使用UniqueID。它是一个属性,必须指定。如果您知道在创建TestObject时将分配一个ID,那么应该让构造函数支持它,并相应地使用它。如果不是,则使用ObjectList.Addnew 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)
        {
            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));

        }
    }
}
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));

        }
    }
}

问题就在这里:newtestobject.UniqueID1;-应为new TestObject.UniqueID=1;UniqueID是一个属性,而不是一个方法,在原始代码中,它就像一个方法一样被使用。如果我这样做,就会得到无效的参数。