gpt4 book ai didi

c# - 如何按不同的值对字符串进行排序

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

我试过寻找一个现有的问题,但不确定如何表达这个问题,而且这个问题在任何地方都没有检索到任何结果:(

无论如何,我有一类具有不同属性的“Order Items”。这些订单商品用于服装,因此它们将具有尺寸(字符串)。

因为我对这类事情有强制症,所以我希望元素不是按字母数字值的大小排序,而是按自定义顺序的大小排序。

如果可能的话,我也不想对这个自定义订单进行硬编码。

分解一下,如果我有这些订单商品的列表,每个商品都有一个尺寸,如下所示:

2XL
S
5XL
M

对于字母数字排序,它将按以下顺序排列:

2XL
5XL
M
S

但我想按以下顺序对这个列表进行排序(从最小到最大):

S
M
2XL
5XL

我能想到的唯一方法是有一个硬编码的大小数组并按它们的索引排序,然后当我需要获取大小值时,我可以获取大小顺序数组[i]值(value)。但是,正如我所说,我更希望这个顺序不要硬编码。

我希望订单是动态的原因是订单项是在运行时从硬盘上的文件加载的,并且在运行时还由用户添加/编辑/删除,并且它们可能包含的大小我没有硬编码,例如我可以从 10XS 到 10XL 一直硬编码,但如果有人添加尺寸“110cm”(又名中号),它会以我不想要的顺序出现在某个地方假设程序不会崩溃和烧毁。

我不太清楚如何做到这一点。

最佳答案

此外,您可以创建一个 Dictionary<int, string>并添加 Key 作为 Ordering order以下。在键之间留一些空隙以适应 future 的新尺寸。例如:如果你想添加 L (Large) , 您可以将新项目添加为 {15, "L"}在不破坏当前顺序的情况下。

 Dictionary<int, string> mySizes = new Dictionary<int, string> { 
{ 20, "2XL" }, { 1, "S" },
{ 30, "5XL" }, { 10, "M" }
};

var sizes = mySizes.OrderBy(s => s.Key)
.Select(s => new {Size = s.Value})
.ToList();

关于c# - 如何按不同的值对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15224622/

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