私はList<Unit>
です。はName
とValue
です。このオブジェクトでは、私はアパレルのサイズに関する情報を保存していますName
はサイズの名前(S、M、L、XL ..)を含み、Value
はそのサイズの数量を含んでいます。リストを参照するには、C#
LISTEで、それはこのようなことかもしれませんので、このユニットのリストは、データベースから含まれているが、リストはランダムな順序で来ている:
Unit(M,3)
Unit(S,1)
Unit(XXL,2)
Unit(L,2)
私はそれがよりになるようにリストをソートしたいと思いますこのように:
Unit(S,1)
Unit(M,3)
Unit(L,2)
Unit(XXLL,2)
私はそれ以来M
はそうでS
の前に来ると、文字列ASCE
またはDESC
上の順序を傾けます。 次に、正しい順序(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