17 Stimmen

Schleife durch konstante Mitglieder einer Klasse

Ich habe eine Klasse mit konstanten Strings darin. Ich möchte alle diese Zeichenketten in eine Dropdown-Sammlung werfen. Wie kann ich das am besten machen? Dies ist, was ich jetzt habe und in der Theorie, würde ich denken, dass es der beste Weg, dies zu tun wäre.

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;
}

Das Problem ist, dass bei foreach ein Fehler auftritt: "...enthält keine öffentliche Definition für GetEnumerator." Ich habe versucht, einen GetEnumerator zu erstellen, aber ich war nicht erfolgreich und habe in der Vergangenheit nicht mit GetEnumerator gearbeitet.

Jede Hilfe ist sehr willkommen!

0voto

fdfrye Punkte 1099

Sie müssen Reflection verwenden, um den Namen jedes Strings von Ihrem benutzerdefinierten Typ zu erhalten, und dann auch/optional den Wert jedes dieser Strings erhalten...

Etwa so:

TestClass theClass = new TestClass();

foreach (PropertyInfo property in theClass.GetType().GetProperties())
{

    Console.WriteLine(property.Name);
    Console.WriteLine(property.GetValue(theClass, null));
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X