繁体   English   中英

List.Add结果错误

[英]List.Add results in error

所以我正在使用ASP.net并尝试将模型/字符串添加到列表中

public class Playlist
{

    public Playlist()
    {
        this.placeList = new List<places>();
    }
    [Key]
    public int id { get; set; }
    public string name { get; set; }
    [ForeignKey("UserId")]
    public IdentityUser User { get; set; }
    public string UserId { get; set; }
    public List<places> placeList { get; set; }


    public class places
    {
        [Key]
        public int places_id { get; set; }
        public string id { get; set; }
    }
}

我可以根据需要以字符串形式获取地方的ID。 我希望

Playlist playlist = new Playlist();
playlist.placeList.Add("hi") 

将导致在id字段中添加一个条目,但我收到一条错误消息。 System.Collection.Generic.List的最佳重载方法匹配具有无效参数。 所以我尝试创建另一个模型。

public class PlaceModel2
{
    public string id { get; set; }
}

并添加

PlaceModel2 f = new PlaceModel2();
f.id = ("hi");

playlist.placeList.Add(f);

我以为这会行得通,但这给了我同样的错误。 有任何线索吗?

这里:

Playlist playlist = new Playlist();
playlist.placeList.Add("hi") 

您正在尝试将string对象添加到places对象List

这里:

PlaceModel2 f = new PlaceModel2();
f.id = ("hi");

playlist.placeList.Add(f);

您正在尝试将PlaceModel2添加到places列表

您是不匹配的类型 ,需要创建places对象并将其添加到List。 因此,对象匹配类型:

var f = new Playlist.places();
f.id = "hi";

playlist.placeList.Add(f);

如果要添加不同类的对象,以placeList你需要建立一个从继承的类places类。 然后,您将能够将派生类对象添加到基类对象列表中。

在第一种情况下

Playlist playlist = new Playlist();
 playlist.placeList.Add("hi") 

您正在将一个string添加到List<places>而不是places对象

在第二种情况下

 PlaceModel2 f = new PlaceModel2();
 f.id = ("hi");

 playlist.placeList.Add(f);

您将PlaceModel2添加到List<places>而不是places对象。

纠正它,您的问题将得到解决

您的收藏有T作为上课地点。 为了使其正常工作,您必须添加类似的东西:

var place = new places(){ /*initialize properties*/ };
Playlist playlist = new Playlist();
playlist.placeList.Add(place);

您的收藏是列表而不是列表,这就是为什么它不起作用的原因。

List<Places>只能容纳一个Lists of Places类。

您正在尝试将字符串添加到位置列表。

所以你需要做这样的事情:

Places places = new Places();
places.id="hi";
Playlist playlist = new Playlist();
playlist.placeList.Add(places) ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM