C#遍历结构体
Type type = typeof(Color);
PropertyInfo[] fields = type.GetProperties();
//FieldInfo[] fields =type.GetFields(System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static);
int i = 30;
panel1.Controls.Clear();
foreach (PropertyInfo f in fields)
{
if (f.ToString().IndexOf(".Color ") > 0)
{
Button btn = new Button();
btn.BackColor = Color.FromName(f.Name);
btn.Text = f.Name;
btn.Location = new Point((i % 10) * 125, 10 + (i / 10) * 30);
//btn.AutoSize = true;
btn.Width = 120;
i++;
panel1.Controls.Add(btn);
}
}
C#遍历枚举
enum类有GetNames和GetValues可以用,比如, WindowState这个枚举
foreach(string s in Enum.GetNames(this.WindowState.GetType()))
label1.Text += (s + "\r\n ");
foreach(int i in Enum.GetValues(this.WindowState.GetType()))
label1.Text += (i.ToString() + "\r\n ");
有时候通过GetValues取不到枚举值,因为枚举的值都是int型,所以可以这样取:
(int)Enum.GetNames(this.WindowState.GetType())[0];