我有一个类似于Point的结构TimePoint,除了,x值是一个datetime,这些时间点的可观察集合以及一个采用datetime并返回double值的方法.
我想检索从此集合中的日期时间返回的双精度的最大值和最小值.
我是linq的新手,我无法弄清楚我必须通过observable集合来实现这个问题的查询.
这是我想要得到的:
double minDouble = 0;
double maxDouble = 0;
foreach(TimePoint item in obsColl)
{
var doubleVal = ConvertToDouble(item.X); //Here x is a datetime
if(minDouble > doubleVal)
minDouble = doubleVal;
if(maxDouble < doubleVal)
maxDouble = doubleVal;
}
Run Code Online (Sandbox Code Playgroud)
如何使用LINQ实现这一目标?或者LINQ不适合这个吗?
您可以使用MaxandMin为此:
double minDouble = obsColl.Min(item => ConvertToDouble(item.X));
double maxDouble = obsColl.Max(item => ConvertToDouble(item.X));
Run Code Online (Sandbox Code Playgroud)