List.Add导致错误

时间:2015-11-25 06:29:21

标签: c# list model

所以我使用ASP.net并尝试将模型/字符串添加到List

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

我按照自己的意愿将字符串作为字符串。我希望

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

我认为这会有效,但这只是给了我同样的错误。任何线索?

4 个答案:

答案 0 :(得分:1)

下面:

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

您正尝试将string个对象添加到Listplaces个对象

下面:

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类继承的类。然后,您将能够将派生类对象添加到基类对象列表中。

答案 1 :(得分:0)

在第一种情况下

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对象。

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

答案 2 :(得分:0)

您的收藏品有T作为课程名称。为了使它工作,你必须添加这样的东西:

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

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

答案 3 :(得分:0)

List<Places>只能包含一个地方列表类。

您正在尝试将字符串添加到地方列表中。

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

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