如何在列表<>;使用Linq

本文关键字:使用 Linq gt lt 列表 | 更新日期: 2023-09-27 18:28:19

我第一次使用Linq时遇到了一个问题。问题是,我想在条件下从表中获得随机20值。我的情况是获取最大值,其中PercentageValue <= 0.5 && PercentageValue >= 90获取PercentageValue <= 0.5 && PercentageValue >= 90所在位置的最小值我的问题是,如果我使用.Max(),它将只返回一个值,但如果您显示表值0.5不止一次,则如何获取该值。我想要什么:-我想要首先我得到列表<>则List<>最小值,然后我从这个列表中得到随机值。

我的数据表设置如下:

ID  ImageName         PercentValue
1   0.5%A (0.4).png     0.5
2   0.5%B (0.5).png     0.5
3   0.5%C (0.4).png     0.5
4   0.5%D (0.4).png     0.5
5   0.5%E (0.4).png     0.5
6   0.5%F (0.4).png     0.5
7   1%A (0.9).png       1
8   1%B (0.9).png       1
9   1%C (1.1).png       1
10  1%D (1.1).png       1
11  1%E (0.9).png       0.9
12  1%F (1.0).png       1
13  10%A1 (9.5).png     10
14  12%A1 (12.1).png    12
15  15%A1 (15.4).png    15
16  15%A2 (13.7).png    15
17  20%A1 (19.9).png    20   
18  21%.png             92
19  derr.png            94

我的代码

var intMax = db.ImageSettings.Max(r => r.PercentageValue <= 0.5 && r.PercentageValue >= 90);
 var listMin = db.ImageSettings.Min(r => r.PercentageValue <= 0.5 && r.PercentageValue >= 90);

如何在列表<>;使用Linq

使用此

var Max = collection.Where(x => x.Percentvalue == collection.Where(a=>a.Percentvalue>=0.5 && a.Percentvalue<=90 ).Max(y => y.Percentvalue));
var Min = collection.Where(x => x.Percentvalue == collection.Where(a=>a.Percentvalue>=0.5 && a.Percentvalue<=90 ).Min(y => y.Percentvalue));
var maximums = table.Where(x => x.PercentValue == table.Where(a=>a.PercentValue>=0.5 && a.PercentValue<=90 ).Max(y => y.PercentValue));
var minimums = table.Where(x => x.PercentValue == table.Where(a=>a.PercentValue>=0.5 && a.PercentValue<=90 ).Min(y => y.PercentValue));
var rnd = new Random();
var result = maximums.Union(minimums).OrderBy(id => rnd.Next()).Take(20).ToList();