2011-02-04 5 views
2

を使用して、オブジェクトのプロパティのリストから、最小値と最大時間値を取得します。私が持っている設定は、プロパティLINQの

class Settings 
{ 
    DateTime StartTime; 
    DateTime EndTime; 
} 

を持つオブジェクトと私は、この設定オブジェクトのリストを作成しました。

LINQを使用してオブジェクトのコレクションからMaxTimeとMinTimeを取得するにはどうすればよいですか?

答えて

2

あなたは時間デルタの最小値と最大値をしたいと仮定:

Settings[] settings = ...; 

var max = settings.Max(s => s.EndTime - s.StartTime); 
var min = settings.Min(s => s.EndTime - s.StartTime); 
+0

obj1.StartTime =午前8時、obj1.EndTime =午後5時、 – PramodChoudhari

+0

@PramodChoudhariのようにそれを実行します。 EndTime - StartTime)は、Hoursプロパティが9に設定されたTimeSpan構造体になります。[''演算子](http://msdn.microsoft.com/en-us/library/1905yhe2.aspx)のDateTimesを参照してください。 – Cameron

+0

-1 OPはちょうど最大値と最小値を求めましたが、両者の違いはありません。 –

11
var minStartTime = settings.Min(setting => setting.StartTime); // returns 8am 
var maxEndTime = settings.Max(setting => setting.EndTime);  // returns 5pm 

これは最低と最高の時間を返します。他の答えは、あなたが求めたものではないように、最大​​値と最小値の差を取得する方法を教えています。あなたが言おうとしているものは非常にわからないが、それらの間にそれらの値との差(:

+0

@JK yaその作業ありがとうございました – PramodChoudhari

+1

@Pramod - これが答えであれば質問の現在の投票数の隣にある小さな目盛り... – cjk

+0

質問の正しい解釈と、OPが期待するものを入力しないための+1。 – Bazzz

1

この

var max = (from item in myList 
     select item.StartTime - item.EndTime).Max() 

var min = (from item in myList 
     select item.StartTime - item.EndTime).Min() 
+0

シェフハルはおかげさまで... – PramodChoudhari

+2

ラムダ構文.Min()と.Max()は簡潔で読みやすいです –

+0

+1 @JK私は全く同意します –