我调用一个web服务,得到一个JSON格式的响应对象。
我想把结果列在一张单子上,这样我就可以一一列举了。
所以我有了这段代码。
var players = getPlayersResponse.Payload
.Select(p => new { p.Name, p.Pid, p.Model, p.Ip, p.Gid })
.ToList();
foreach (var p in players)
{
Players.Items.Add(p.Name);
}
我想返回一个已知类的列表,因此尝试了以下操作:
var players = getPlayersResponse.Payload
.Select(p => new Player { Name= p.Name, Pid= p.Pid, Model= p.Model, Ip= p.Ip, Gid= (int)p.Gid })
.ToList();
foreach (var p in players)
{
Players.Items.Add(p.Name);
}
还有班级
public class Player
{
public string Name { get; set; }
public int Pid { get; set; }
public string Model { get; set; }
public string Ip { get; set; }
public int Gid { get; set; }
}
这个版本不工作(listbox没有填充项),而且我根本没有错误,编译器也不会抱怨。奇怪的是,如果我没有将p.Gid转换成int,编译器确实会抱怨,但在这两种情况下,它都是相同的json结果。
我看不出我做错了什么。