访问 GetRange() 方法中泛型列表的字段

本文关键字:泛型 列表 字段 方法 GetRange 访问 | 更新日期: 2023-09-27 18:36:31

有人知道如何从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. 

访问 GetRange() 方法中泛型列表的字段

GetRange返回具有给定范围的列表副本。因此,您的列表至少需要 8760 个项目。若要仅选择对象的 Moisture 属性,可以使用 LINQ 的Select

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

注意:仅当您要保留查询时,才需要末尾的ToListOrderBy查询末尾的ToList是无用的,因为您要链接另一个查询。我只会在尽可能晚的情况下实现 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();
您可以使用

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

使用

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

它将为您提供GetRange()返回的Liner水分含量,即 5 个水分含量。