我有一个List<Unit>
,其中Unit
包含Name
和Value
。在此对象中,我存储有关服装尺码的信息,Name
包含尺码名称(S,M,L,XL ..),而Value
包含该尺码的数量。
这个单元列表是从数据库中包含的,但是列表是随机排列的,因此在列表中,它可能是这样的:
Unit(M,3)
Unit(S,1)
Unit(XXL,2)
Unit(L,2)
我想对列表进行排序,使其变得更像这样:
Unit(S,1)
Unit(M,3)
Unit(L,2)
Unit(XXLL,2)
我无法订购字符串ASCE
或DESC
,因为它M
在S
之前,依此类推。
然后,我想我可以创建一个具有正确顺序(XXS,XS,S,M,L,XL,XXL,XXXL)的引用数组,但是如何根据引用对列表进行排序。
还是有其他聪明的方法可以做到这一点?
更新资料
感谢所有好的回答,我找到了Enum
解决方案,它最终看起来像这样:
public class Unit
{
public Unit()
{
}
public Unit(string name, int value)
{
Value = value;
SizeCode = AssignSizeCode(name);
}
public SizeCode SizeCode { get; set; }
public int Value { get; set; }
private SizeCode AssignSizeCode(string name)
{
switch (name)
{
case "XXS":
return SizeCode.XXS;
case "XS":
return SizeCode.XS;
case "S":
return SizeCode.S;
case "M":
return SizeCode.M;
case "L":
return SizeCode.L;
case "XL":
return SizeCode.XL;
case "XXL":
return SizeCode.XXL;
case "XXXL":
return SizeCode.XXXL;
default:
return SizeCode.Unknown;
}
}
}
public enum SizeCode
{
XXS = 1,
XS = 2,
S = 3,
M = 4,
L = 5,
XL = 6,
XXL = 7,
XXXL = 8,
Unknown = 9
}
我这样排序:
units = units.OrderBy(x => (int)x.SizeCode).ToList();
有什么意见或需要改进的地方吗?
参考方案
如何使用枚举
public enum Size
{
Small = 1,
Medium = 2,
// etc
}
然后,您可以将Unit类中的枚举值转换为int并按整数值排序。
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
jQuery DataTable TableTool在IE和Firefox中不起作用 - c#我在MVC4 ASP.NET Web应用程序中使用Jquery DataTable TableTool。导出到Excel和PDF可以与Chrome完美配合。但是不能在IE和FireFox中使用。我的代码如下 dom: 'T<"clear">lfrtip', tableTools: { "sSwfP…
如何通过Ajax将数据发送到不同的元素? - phpscript.js $(document).on("click", ".send", function (event) { $.ajax({ url: "update.php", data: { id: id, }, type: "POST", success: function…
提交表单后显示模式对话框 - php提交下载文件后,我有一张表格。我要自动而不是自动下载文件..以显示模态对话框并显示下载链接。<form name="softwareform" id="softwareform" action="../downloadlink.php" method="POST" alig…