我可以通过foreach或其他循环结构获取成员字段吗?

时间:2014-08-08 04:35:47

标签: c# collections

这是我的全局变量。该班有1000名成员。

internal class Global
{

    internal static int a1;
    internal static int a2;
    internal static int a3;
    ...
    ...
    internal static int a1000;   
}

按下btn1时,我想将其值保存到如下文件中。

private void button1_Click(object sender, RoutedEventArgs e)
{

    foreach( value in member )
    {
        //put value to file         
    }    
}

如何通过foreach或其他循环结构访问其成员?

1 个答案:

答案 0 :(得分:4)

最好有int数组并循环int数组而不是Global

internal class Global
{
    internal static int [] Arr;
}


foreach(int value in Globalmember.Arr)
{
    //put value to file         
}    

虽然您可以使用System.Reflection来获取课程成员,但请参阅此post。以下示例显示了如何使用System.Reflection

获取属性
Type type = typeof(TestGlobal);
FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Static); 
foreach (var field in fields) 
{
    if(field.Name.StartsWith("a"))
        Debug.WriteLine(field.Name);
}

注意您应该以可以在字段集合中唯一搜索它们的方式命名属性。例如,a可能出现在您不想要的许多其他属性中,但aaa不太可能出现在其他属性中。