1

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. 
4

3 に答える 3

1

GetRange指定された範囲のリストのコピーを返します。したがって、リストには少なくとも 8760 個のアイテムが必要です。オブジェクトのプロパティのみを選択するには、MoistureLINQ を使用できますSelect

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

注:ToListクエリを永続化する場合にのみ、最後に が必要です。別のクエリをチェーンしたいのでToList、クエリの最後にあるのは役に立ちません。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();
于 2012-06-07T11:10:37.707 に答える
0

を使用して、選択した5つのレコードからコンポーネントをnewList.GetRange(8755, 5).Select(l => l.Moisture)取得できます。MoistureLiner

于 2012-06-07T11:06:18.300 に答える
0

使用する

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

つまり、5 つの水分レベルLinerによって返される水分レベルが得られます。GetRange()

于 2012-06-07T11:07:52.427 に答える