逛了逛,发现很多人想遍历一个枚举。而我以前也曾遇到过,想了很多方法没能解决,所以呢,干脆将解决方案发出来大家共享一下。
这是我唯一能想出来的方法了。也是我自己的库中使用的一个方法。
/// <summary> /// 从 枚举中输出字符串 /// </summary> /// <param name="EnumType"> typeof(枚举) </param> /// <param name="formatString"> 格式化字符串 {0}=名称,{1}代表数字 </param> /// <returns></returns> public static string StringFromEnum(Type EnumType, string formatString) { StringBuilder sb = new StringBuilder(); foreach ( string str in Enum.GetNames(EnumType)) { sb.Append( string .Format(formatString, str, Enum.Format(EnumType, Enum.Parse(EnumType, str), " d " ))); } return sb.ToString(); }
比如:
public enum Test { 测试遍历 = 0 , qhw2002 = 1 , lsword = 2 }
然后输出:
Response.Write(StringFromEnum( typeof (Test), " <div>名称:{0} , 值:{1}</div> " ));
结果:
< div > 名称:测试遍历,值:0 </ div > < div > 名称:qhw2002,值:1 </ div > < div > 名称:lsword,值:2 </ div >
这样做的好处是暂时可以将 Enum 绑定到 SELECT 等控件中...
没有测试过性能,不知道情况如何...也还没找到更好的解决办法...