c# – 循环通过一个类的常量成员

前端之家收集整理的这篇文章主要介绍了c# – 循环通过一个类的常量成员前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个有恒定字符串的类.我想将所有这些字符串都放入一个下拉列表中.这样做最好的方法是什么?这就是我现在所说的,理论上我认为这是最好的办法.
public class TestClass
{
    private const string _testA = "Test A";
    private const string _testB = "Test B";

    public string TestA
    {
        get { return _testA; }
    }

    public string TestB
    {
        get { return _testB; }
    }
}

public DropDownItemCollection TestCollection
{
    DropDownItemCollection collection = new DropDownItemCollection();
    TestClass class = new TestClass();

    foreach (string testString in class)
    {
        DropDownItem item = new DropDownItem();
        item.Description = testString;
        item.Value = testString;
        collection.Add(item);
    }

    return collection;
}

问题是这会在foreach上返回一个错误:“…不包含GetEnumerator的公共定义”.我试图创建一个GetEnumerator,但我一直没有成功,我以前没有使用过GetEnumerator.

任何帮助是极大的赞赏!

解决方法

您可以使用反射循环遍历所有属性
public DropDownItemCollection TestCollection
{
    var collection = new DropDownItemCollection();
    var instance = new TestClass();
    foreach (var prop in typeof(TestClass).GetProperties())
    {
        if (prop.CanRead)
        {
            var value = prop.GetValue(instance,null) as string;
            var item = new DropDownItem();
            item.Description = value;
            item.Value = value;
            collection.Add(item);
        }
    }
    return collection;
}

猜你在找的C#相关文章