我想按升序对ValidatingCarrier
进行排序,所以我想把它放到一个List中,然后在我的控制器中使用Orderby对它进行排序。
我有以下模型类:
public class sort
{
public OTAAirLowFareSearchRS OTA_AirLowFareSearchRS { get; set; }
}
public class OTAAirLowFareSearchRS
{
public int PricedItinCount { get; set; }
public int BrandedOneWayItinCount { get; set; }
public int SimpleOneWayItinCount { get; set; }
public int DepartedItinCount { get; set; }
public int SoldOutItinCount { get; set; }
public int AvailableItinCount { get; set; }
public string Version { get; set; }
public Success success { get; set; }
public Warnings Warnings { get; set; }
public PricedItineraries PricedItineraries { get; set; }
public TPAExtensions8 TPA_Extensions { get; set; }
}
public class PricedItinerary
{
public int SequenceNumber { get; set; }
public AirItinerary AirItinerary { get; set; }
public List<AirItineraryPricingInfo> AirItineraryPricingInfo { get; set; }
public TicketingInfo TicketingInfo { get; set; }
public TPAExtensions7 TPA_Extensions { get; set; }
}
public class AirItineraryPricingInfo
{
public string PricingSource { get; set; }
public string PricingSubSource { get; set; }
public ItinTotalFare ItinTotalFare { get; set; }
public PTCFareBreakdowns PTC_FareBreakdowns { get; set; }
public FareInfos2 FareInfos { get; set; }
public TPAExtensions6 TPA_Extensions { get; set; }
public string LastTicketDate { get; set; }
}
public class TPAExtensions6
{
public DivideInParty DivideInParty { get; set; }
public ValidatingCarrier ValidatingCarrier { get; set; }
}
以下是我尝试在控制器中访问它的方式。我无法访问超过PriceItinerary
因为重置作为列表。
sort searchResponse = JsonConvert.DeserializeObject<sort>(tar.ToString());
var sortingname = searchResponse.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary;
List<PricedItinerary> lstname = new List<PricedItinerary>();
赞赏任何形式的帮助......
答案 0 :(得分:0)
您已先创建对象
searchResponse.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary obj = new searchResponse.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary;
var x = obj.SequenceNumber;
答案 1 :(得分:0)
您可以使用LINQ SelectMany
将IEnumerable
投影到一个IEnumerable
。
使用给定的模型并假设您需要从ValidatingCarrier
开始获取PricedItinerary
列表,让我们去做吧!
IEnumerable<ValidatingCarrier> IEValidatingCarrier = searchResponse.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary
.SelectMany(p => p.AirItineraryPricingInfo.SelectMany(a => a.TPA_Extensions.ValidatingCarrier)); //This would give you an IEnumerable<ValidatingCarrier>
IEnumerable<ValidatingCarrier> LstValidatingCarrier = IEValidatingCarrier.OrderBy(o => o.OrderBySomething).ToList(); //And finally, your ordered list!
您也可以一次完成所有操作,例如:
searchResponse.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary
.SelectMany(p => p.AirItineraryPricingInfo.SelectMany(a => a.TPA_Extensions.ValidatingCarrier))
.OrderBy(o => o.OrderBySomething).ToList();
希望它有所帮助!如果我不太了解你的问题,请告诉我!
答案 2 :(得分:0)
您是否正在尝试访问&#34; AirItineraryPricingInfo&#34;使用&#34; PricedItinerary&#34;的实例?如果是这样,那么这会有所帮助,否则请忽略。
public class PricedItinerary : AirItineraryPricingInfo
{
public int SequenceNumber { get; set; }
public AirItinerary AirItinerary { get; set; }
public List<AirItineraryPricingInfo> AirItineraryPricingInfo { get; set; }
public TicketingInfo TicketingInfo { get; set; }
public TPAExtensions7 TPA_Extensions { get; set; }
}
在控制器中,如果我们为&#34; PricedItinerary&#34;创建实例,我们可以访问继承的类。