我第一次使用Linq而且我遇到了问题。问题是我想在条件下从表中获取Random 20值。我的病情是
获取PercentageValue <= 0.5 && PercentageValue >= 90
的最大值
获取PercentageValue <= 0.5 && PercentageValue >= 90
的最小值
我的问题是如果我使用.Max()它将如何获取值只返回一个值,但如果你显示表值0.5不止一次。
我想要的是: - 我想要的第一个我得到List&lt;&gt;最大值然后列出&lt;&gt;最小值然后我从这个列表中得到随机值。
我的数据表设置如下:
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);
答案 0 :(得分:2)
使用此
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));
答案 1 :(得分:1)
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();