如何在列表<>;使用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);
使用此
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();