从GetRange()方法中的通用List访问字段?

时间:2012-06-07 11:03:40

标签: c# generic-list

是否有人知道如何从List<>?访问特定字段?我无法弄清楚如何访问newList对象中的特定字段。

  List<Liner> LX = new List<Liner>();

  public class Liner
  {
      public double Temperature { get; set; }
      public double Moisture { get; set; }
  }

newList = LX.OrderBy(x => x.Temperature).ToList();

var lstMXLast = newList.GetRange(8755, 5);  // I need only 5 specific Moisture records in this case. 

3 个答案:

答案 0 :(得分:1)

GetRange返回给定范围的列表副本。所以你的清单需要至少8760项。要仅选择对象的Moisture属性,可以使用LINQ的Select

var lstMoistures = newList.GetRange(8755, 5).Select(l => l.Moisture).ToList();

注意:仅当您要保留查询时,才需要最后ToListToList查询末尾的OrderBy无用,因为您想要链接另一个查询。我会尽可能晚地实现LINQ查询。

你也可以使用LINQ:

var lstMoistures = newList.Skip(8755).Take(5).Select(l => l.Moisture).ToList();

假设您最初想要选择温度最高的5个衬垫,这应该会给您正确的结果:

var lstMoistures = LX.OrderByDescending(x => x.Temperature).Take(5).Select(l => l.Moisture).ToList();

答案 1 :(得分:0)

您可以使用newList.GetRange(8755, 5).Select(l => l.Moisture)从五个选定的Moisture记录中获取Liner组件。

答案 2 :(得分:0)

使用

var results = newList.GetRange(8755, 5).Select(m => m.Moisture);

它会给你Liner的水分含量GetRange(),即5个水分含量。