C#LINQ投影到类

时间:2019-01-06 21:19:40

标签: c# linq

我调用了Web服务,并用JSON返回了响应对象。

我想要列表中的结果,以便我可以对它们进行枚举。

所以我有这段代码可以正常工作。

initializer_list

我想返回一个已知类的列表,所以尝试了以下操作:

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

该版本不起作用(列表框中未填充项目),而且我完全没有错误,编译器也没有抱怨。奇怪的是,尽管我没有将p.Gid转换为int,但编译器确实抱怨。两种情况下都是相同的json结果。

我看不到我在做错什么。

1 个答案:

答案 0 :(得分:0)

我通过更改此类来解决了这个问题

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