2012-10-12 36 views
0

我有以下代码,它工作正常,分析JSON。json检索后排序数组

EVENT和SQUAD是JSON数组。

我需要什么样的代码才能对数组进行排序,例如在TIME上排序EVENT,或者在RANK上排序SQUAD?

void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
     { 

      var serializer = new DataContractJsonSerializer(typeof(gameDetails)); 
      gameDetails jsResult = (gameDetails)serializer.ReadObject(e.Result); 

     ... 
     } 
     [DataContract] 
     public class gameDetails 
     { 
      [DataMember] 
      public string HomeTeamScore { get; set; } 
      [DataMember] 
      public string AwayTeamScore { get; set; } 
      [DataMember] 
      public string FixtureDate { get; set; } 
      [DataMember] 
      public string HomeTeamName { get; set; } 
      [DataMember] 
      public string AwayTeamName { get; set; } 
      [DataMember(Name = "EVENT")] 
      public EVENT[] EVENTS; 
      [DataMember(Name = "SQUADS")] 
      public SQUAD[] SQUADS; 

     } 
     [DataContract] 
     public class EVENT 
     { 
      [DataMember] 
      public string TEAMFLAG { get; set; } 
      [DataMember] 
      public string TIME { get; set; } 
      [DataMember] 
      public string PLAYER { get; set; } 
      [DataMember] 
      public string TYPE { get; set; } 
     } 

     [DataContract] 
     public class SQUAD 
     { 
      [DataMember] 
      public string PLSURN { get; set; } 
      [DataMember] 
      public string PLID { get; set; } 
      [DataMember] 
      public string PLAYER { get; set; } 
      [DataMember] 
      public string TEAM { get; set; } 
      [DataMember] 
      public string PLFORN { get; set; } 
      [DataMember] 
      public string SQUADNO { get; set; } 
      [DataMember] 
      public string RANK { get; set; } 
     } 

回答

1

也许这对事件排序:

jsResult.EVENTS = jsResult.EVENTS.OrderBy(e=>e.TIME).ToArray(); 

注意,时间是字符串,你可能想在排序前将其转换。

+0

完美!我尝试了许多不同的东西,但无法让它工作,很简单,当你知道如何!我已将'TIME'和其他一些变量改为'int'来帮助排序。 –