You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向对象列表中添加对象?C# List构造函数参数报错求助

解决List构造函数参数不匹配的问题

你碰到的问题核心很清晰:List<ObiektDecyzja>根本没有接受两个独立参数(obiekt和decyzja)的构造函数。你现在的写法是想直接把两个值传给List的构造函数来创建列表,但List的构造函数只支持这几种用法:

  • 空构造函数(创建空列表)
  • 传入一个整数(设置列表的初始容量,不是添加元素)
  • 传入一个已有的集合(把集合里的元素复制到新列表)

要解决这个问题,分两步来:

1. 确保ObiektDecyzja类有正确的构造函数

首先你需要确认ObiektDecyzja类定义了接受obiekt和decyzja这两个参数的构造函数,不然你没法创建它的实例。比如:

public class ObiektDecyzja
{
    public int Obiekt { get; set; }
    public int Decyzja { get; set; }

    // 定义接受两个参数的构造函数
    public ObiektDecyzja(int obiekt, int decyzja)
    {
        Obiekt = obiekt;
        Decyzja = decyzja;
    }
}

2. 正确初始化List并添加对象

回到你的LiczbaDeskryptorowIlosc类,有两种常用的正确写法:

方法一:先创建空列表,再添加对象

class LiczbaDeskryptorowIlosc 
{ 
    public List<ObiektDecyzja> ObiektIDecyzja { get; set; }

    public LiczbaDeskryptorowIlosc(int deskryptor, int atrybut, int ilosc,int obiekt, int decyzja) 
    { 
        this.Deskryptor = deskryptor; 
        this.Atrybut = atrybut; 
        this.Ilosc = ilosc; 
        // 先实例化空列表
        this.ObiektIDecyzja = new List<ObiektDecyzja>();
        // 创建ObiektDecyzja实例并添加到列表中
        this.ObiektIDecyzja.Add(new ObiektDecyzja(obiekt, decyzja)); 
    } 
    public int Deskryptor { get; set; } 
    public int Atrybut { get; set; }
    public int Ilosc { get; set; }
    // 其他属性...
} 

方法二:使用集合初始化器一次性创建并添加对象

这种写法更简洁,适合在创建List的同时直接添加元素:

class LiczbaDeskryptorowIlosc 
{ 
    public List<ObiektDecyzja> ObiektIDecyzja { get; set; }

    public LiczbaDeskryptorowIlosc(int deskryptor, int atrybut, int ilosc,int obiekt, int decyzja) 
    { 
        this.Deskryptor = deskryptor; 
        this.Atrybut = atrybut; 
        this.Ilosc = ilosc; 
        // 用集合初始化器直接包含新的ObiektDecyzja实例
        this.ObiektIDecyzja = new List<ObiektDecyzja>
        {
            new ObiektDecyzja(obiekt, decyzja)
        }; 
    } 
    public int Deskryptor { get; set; } 
    public int Atrybut { get; set; }
    public int Ilosc { get; set; }
    // 其他属性...
} 

另外要提醒你:如果直接写new List<ObiektDecyzja>(5),这里的5是设置列表的初始容量(提前分配内存),不是添加5个元素,别搞混了哦。

内容的提问来源于stack exchange,提问作者BartusZak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:26:10