我們經常使用列舉,但是可能只是一些簡單的應用,其實在我們的專案中用到的 下拉列表、model屬性型別等,都可以利用列舉更好的實現。
//定義列舉
public enum departmenteum
1、下拉列表使用列舉資料來源:
//繫結部門
var deptlist = enumhelper.getcacheddictionary(typeof(departmenteum ));
var ddldeptlist = new list();
ddldeptlist.add(new selectlistitem() );
foreach (var item in deptlist));}
2、model屬性型別:
/// /// 部門列舉
///
[datamember]
public departmenteum department
//獲取列舉值
(int)model.department
//獲取列舉描述資訊
enumhelper.getenumdescription(model.department)
///3、以下是列舉幫助類
enumhelper.cs
public static class enumhelper
else
} public static ilist> getdictionary(type type)
fieldinfo fields = type.getfields();
ilist> dict = new list>();
foreach (var item in fields)
string desription = string.empty;
object objs = item.getcustomattributes(typeof (descriptionattribute), false);
if (objs != null && objs.length> 0)
else
dict.add(new keyvaluepair(((int) enum.parse(type, item.name)).tostring(), desription));
}return dict;
} public static string getcacheddescription(type type, string fieldname)
}return fieldname;
} public static string getcachedfieldname(type type, string description)
}return description;
} ////// 根據列舉型別獲取描述
//////型別
///描述
public static string getenumdescription(enum value)
else
} /// /// 從快取中獲取列舉對應的list[新增一空白列]
///
///
///
public static ilist> getcacheddictionaryblank(type type)
ilist> dict = getdictionary(type);
dict.insert(0, new keyvaluepair((-1).tostring(), string.empty));
ht[type] = dict;
return dict;
} public static keyvaluepairgetenum(type type, string fieldname)
}return kvp;
}}
C 列舉高階用法之Description
基礎列舉 namespace testenum 宣告列舉,呼叫。幾個常用的轉換不做介紹,一嗦一大堆。enum轉string enum 轉int string轉enum 整型轉enum public enum name 加了description,就可以通過反射來訪問這些資料 如何訪問?using s...
列舉高考後考生的幾種畸形演化
列舉高考後考生的幾種畸形演化 文 飛天含雪 高考雖然只有短短兩天時間,卻折磨無數人n多夜晚,以前以為只有高考前的準備期間才會痛不欲生,高考後將一了百了,結果卻是騙自己,所謂 請袢菀姿蛻衲?rdquo 事實上請高考不易,送高考更難,高考的陰影不會因為其結束而散去。這不,我馬上就可以列出高考後的種種不適...
列舉高考後考生的幾種畸形演化
列舉高考後考生的幾種畸形演化 文 飛天含雪 qq 543415188 高考雖然只有短短兩天時間,卻折磨無數人n多夜晚,以前以為只有高考前的準備期間才會痛不欲生,高考後將一了百了,結果卻是騙自己,所謂 請神容易送神難 事實上請高考不易,送高考更難,高考的陰影不會因為其結束而散去。這不,我馬上就可以列出...