编译项目时遇List<Coredata>隐式转换错误,请求技术支援
解决Cannot implicitly convert type 'System.Collections.Generic.List' to ''错误
嘿,这问题很好搞定!咱们先拆解下错误原因:编译器报错是因为你的方法返回类型被定义成了单个Coredata对象,但你现在代码里返回的却是一个List<Coredata>(Coredata的集合),类型不匹配就触发这个错误啦。
咱们看你贴的代码:
var Data1 = new List<Coredata>(); Data1 = JsonConvert.DeserializeObject<List<Coredata>>(responseFromServer); return Data1;
接下来分两种场景给你解决方案:
场景1:你的JSON返回的确实是一个Coredata数组
如果responseFromServer里的JSON是类似这样的数组结构:
[{"Id":1, "Name":"Sample1"}, {"Id":2, "Name":"Sample2"}]
那说明你反序列化的代码是对的,问题出在方法的返回类型上——把方法的返回类型从Coredata改成List<Coredata>就搞定了,比如:
public List<Coredata> YourMethodName() { var data1 = JsonConvert.DeserializeObject<List<Coredata>>(responseFromServer); return data1; }
场景2:你的JSON返回的是单个Coredata对象
如果responseFromServer里的JSON是单个对象结构:
{"Id":1, "Name":"Sample"}
那你需要调整反序列化的代码,把泛型从List<Coredata>改成Coredata,同时变量也不需要定义成列表:
public Coredata YourMethodName() { var data1 = JsonConvert.DeserializeObject<Coredata>(responseFromServer); return data1; }
小提醒:按照C#的命名规范,变量名建议用小驼峰(比如data1而不是Data1),这样代码更易读哦~
内容的提问来源于stack exchange,提问作者Nivin Sunathree




