[英]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.