LINQ - C# - 使用lambda - 从Collection中获取一组数据

Har*_*sha 5 c# linq

我有一个类似于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不适合这个吗?

McG*_*gle 4

您可以使用MaxandMin为此:

double minDouble = obsColl.Min(item => ConvertToDouble(item.X));
double maxDouble = obsColl.Max(item => ConvertToDouble(item.X));
Run Code Online (Sandbox Code Playgroud)