這裏是擴展方法我用轉換枚舉,唯一的區別是,我回來IEnumerbale>我的目的:
public static IEnumerable<KeyValuePair<int, string>> ToListOfKeyValuePairs<TEnum>(this TEnum enumeration) where TEnum : struct
{
return from TEnum e in Enum.GetValues(typeof(TEnum))
select new KeyValuePair<int, string>
(
(int)Enum.Parse(typeof(TEnum), e.ToString()),
Regex.Replace(e.ToString(), "[A-Z]", x => string.Concat(" ", x.Value[0])).Trim()
);
}
它也增加了空間的價值。
實施例:
enum Province
{
BritishColumbia = 0,
Ontario = 1
}
用法:
<select>
<% foreach(var item in Province.BritishColumbia.ToListOfKeyValuePairs()){ %>
<option value="<%=item.Key %>"><%=item.Value %></option>
<% } %>
</select>
輸出:
<select>
<option value="0">British Columbia</option>
<option value="1">Ontario</option>
</select>
雖然@保羅魯安是正確的我已經發現這是一個非常有用的擴展方法。這不是一個完美的世界。
你爲什麼不告訴我們錯誤信息? – 2011-03-31 12:56:30