Microsoftの例から次のコードを考えます。
public class EngineMeasurementCollection : Collection<EngineMeasurement>
{
public EngineMeasurementCollection()
{
Add(new EngineMeasurement { Speed = 1000, Torque = 100, Power = 20 });
Add(new EngineMeasurement { Speed = 2000, Torque = 160, Power = 60 });
Add(new EngineMeasurement { Speed = 3000, Torque = 210, Power = 125 });
Add(new EngineMeasurement { Speed = 4000, Torque = 220, Power = 160 });
Add(new EngineMeasurement { Speed = 5000, Torque = 215, Power = 205 });
Add(new EngineMeasurement { Speed = 6000, Torque = 200, Power = 225 });
Add(new EngineMeasurement { Speed = 7000, Torque = 170, Power = 200 });
}
}
public class EngineMeasurement
{
public int Speed { get; set; }
public int Torque { get; set; }
public int Power { get; set; }
}
速度またはトルクまたは電力の最小/最大を取得するにはどうすればよいですか。実行しているグラフのスケールを設定するには、これが必要です(正確には、WPFツールキットのグラフ)。EngineMeasurementCollection内に、各EngineMeasurementを反復処理し、Power(またはSpeed)を調べるメソッドを作成できると思いますが、もっと簡単な方法があると思いますか?クラスCollectionにはある種のMinメソッドがありますが、コレクションの最小値を取得しようとしているのではなく(この場合、それが何を意味するのかわかりません)、特定のプロパティの最小値を取得しようとしていることに注意してください(例:速度)。私は、ファンクターでCollection.Minが使用されているのを見ました。そこでできることはありますか?またはLinqを使用しますか?私はあらゆる面で興味があります。ありがとう、デイブ
ボーナスの質問(おそらくこれは最小/最大の答えで私には明らかです)。値(Speedがすでにコレクションにあるなど)を決定するためのオプションは何ですか。この例からは明らかではありませんが、特定の独立変数(たとえば、時間)のデータがすでにある場合は、それ以上必要ない場合があります。では、Collection.Contains( "興味のあるプロパティを指定")のようなものはありますか?