简体   繁体   English

Linq Min()非零值

[英]Linq Min() of Non-zero values

I have a table with columns OneStopPrice; MultiStopPrice; NonStopPrice 我有一个带有OneStopPrice; MultiStopPrice; NonStopPrice列的表OneStopPrice; MultiStopPrice; NonStopPrice OneStopPrice; MultiStopPrice; NonStopPrice OneStopPrice; MultiStopPrice; NonStopPrice . OneStopPrice; MultiStopPrice; NonStopPrice I want to have Min() for all 3 columns. 我希望所有3列都具有Min() But if Min() of any column is 0, It must be ignored. 但是,如果任何列的Min()为0,则必须将其忽略。

OneStop | NonStop | MultiStop
-----------------------------
233.23  | 0.0     | 355.23

Here NonStop must be then considered as highest value so as to ignore it. 然后必须将NonStop视为最高值,以便忽略它。

Anyone have idea for this using LinQ ? 任何人有使用LinQ想法吗?

I have used query as follows: 我使用查询如下:

var data = odyResults.GroupBy(logEle => new { logEle.Air.FromCity, logEle.Air.ToCity }, (key, group) => new{
       FromCity = key.FromCity,
       ToCity = key.ToCity,
       OneStopPrice = group.Min(x=>x.Air.OneStopPrice),
       MultiStopPrice = group.Min(x => x.Air.MultiStopPrice),
       NonStopPrice = group.Min(x => x.Air.NonStopPrice),
       FromToCityCount = group.Count()
      });

Just filter out the zeros: 只需滤除零即可:

NonStopPrice = group.Where(x => x.Air.NonStopPrice > 0)
                    .Min(x => x.Air.NonStopPrice),

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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