7

私は次のクラスを持っています。

public class PriceDetails 
{
  public float AverageNightlyRate { get; set; }
}

public class RoomContainer
{
  public PriceDetails RoomPriceDetails { get; set; }
  public string PromotionDescription { get; set; }
}    

public List<RoomContainer> HotelRooms { get; set; }

リストHotelRoomsには 10 個のアイテムがあります。AverageNightlyRateの最大値を見つけたいです 。

for loop を繰り返し使用しています。効率的な方法でそれを行うことができますか?

4

3 に答える 3

19

Enumerable.Maxを使用します。

var maxAverageRate = HotelRooms.Max(r => r.RoomPriceDetails.AverageNightlyRate)

の場合、次のRoomPriceDetailsようnullになります。

var maxAverageRate = HotelRooms.Where(r => r.RoomPriceDetails != null)
                               .Max(r => r.RoomPriceDetails.AverageNightlyRate);

または

var maxAverageRate = HotelRooms.Select(room => room.RoomPriceDetails)
                               .Where(price => price != null)
                               .Max(price => price.AverageNightlyRate);
于 2013-01-28T13:53:02.313 に答える
2
HotelRooms.Max (r => r.RoomPriceDetails.AverageNightlyRate );
于 2013-01-28T13:56:01.873 に答える