简体   繁体   中英

DataTable Linq with two join statements in C#

My code:

var Result = from TempRow in ArrAbsDiff
             where TempRow.Strike == StrikeOfMinAbsDiff
             select TempRow.PutMidPrice;

I know that the above code return just one value of type decimal (maybe double). However, Result is of type Enumerable and I could not easily write Result + 2 . I need to convert it property. I can do it through the following code:

var Result = (from TempRow in ArrAbsDiff
             where TempRow.Strike == StrikeOfMinAbsDiff
             select TempRow.PutMidPrice).Min();

Is there more efficient way to accomplish it?

Regards,

I know that the above code return just one value of type decimal

Then use First method instaed of Min .

At compile time, it's unknown whether the query you have returns 1 record or more than 1 record. So, it assumes a list of them.

I don't know if there is a performance difference between them, I typically use .Single() to get the single record. It's more clear that I want a single record and not, for example, the minimum one.

Try using FirstOrDefault()" this selects the first result returned (as you know only one value will be returned). if a value is not returned the Result will be null, catch this in an if statement like below:

var Result = (from TempRow in ArrAbsDiff
             where TempRow.Strike == StrikeOfMinAbsDiff
             select TempRow.PutMidPrice).FirstOrDefault();

if (Result == null)
    return; // or error message

this will also keep the type of value returned (typed this of the top of my head, may need slight changes!)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM