我有一個List<Unit>
其中Unit
包含Name
和Value
。在此對象中,我存儲有關服裝尺寸Name
包含尺寸名稱(S,M,L,XL ..)的信息,並且Value
包含該尺寸的數量。通過引用排序一個清單C#
該單元列表是從數據庫中包含的,但列表來按隨機順序,所以在清單當然它可能是這樣的:
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 ApparelSize {XXS = 0,XS = 1,S = 2} – Lloyd 2012-02-20 09:30:37