gpt4 book ai didi

c# - 我想从列表中找到最接近的较大纸张尺寸

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:05 26 4
gpt4 key购买 nike

我想从代码中显示的列表中找到最接近的相等或更大的纸张尺寸。

List<PaperSize> paper = new List<PaperSize>();

paper.Add(new PaperSize("B5", 516, 729));
paper.Add(new PaperSize("A5", 420, 595));
paper.Add(new PaperSize("A4", 595, 842));
paper.Add(new PaperSize("B4", 729, 1032));
paper.Add(new PaperSize("A4L", 842, 595));
paper.Add(new PaperSize("A3", 1191, 842));
paper.Add(new PaperSize("A2", 1685, 1190));
paper.Add(new PaperSize("A1", 2384, 1685));
paper.Add(new PaperSize("A0", 3371, 2384));

int width = 1189;
int height = 840;

string name = paper.SkipWhile(p => p.PaperWidth < width && p.PaperHeight <
height).First().PaperName;

Console.WriteLine("Nearest equal or larger papersize is " + name);


如果我提供宽度1189和高度840,我希望选择纸张A3,但结果是A4。
如何退回A3?

编辑:确实,列表并不总是以特定的方式排序。因此,@ Johnny和@Knoop的建议解决了我的问题。紧接着,我忘记将PaperSize及其属性PaperName,PaperWidth和PaperHeight包括在内,但是你们所有人都正确地认为我拥有此属性。

最佳答案

尝试此操作,paper列表不应提前排序:

paper.Where(p => p.PaperWidth  - width >= 0 && p.PaperHeight  - height >= 0)
.OrderBy(p => p.PaperWidth - width + p.PaperHeight - height)
.FirstOrDefault();

关于c# - 我想从列表中找到最接近的较大纸张尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54628239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com