Czy istnieje sposób na wyświetlenie wszystkich zmiennych (pól) klasy w języku C#. Jeśli tak, to czy ktoś może podać mi kilka przykładów, jak je zapisać w List
i uzyskać je przy użyciu Anonymous Types
(var).Jak wyświetlić listę wszystkich zmiennych klasy
Odpowiedz
Twoje pytanie nie jest całkowicie jasne. Brzmi to jak chcesz wartości pól dla danej instancji klasy:
var fieldValues = foo.GetType()
.GetFields()
.Select(field => field.GetValue(foo))
.ToList();
Zauważ, że fieldValues
jest List<object>
. Tutaj foo
jest istniejącą instancją Twojej klasy.
Jeśli chcesz public
i pozarządowych public
pól, trzeba zmienić flagi wiążących poprzez
var bindingFlags = BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.Public;
var fieldValues = foo.GetType()
.GetFields(bindingFlags)
.Select(field => field.GetValue(foo))
.ToList();
Jeśli chcesz jedynie nazwy:
var fieldNames = typeof(Foo).GetFields()
.Select(field => field.Name)
.ToList();
Tutaj Foo
to nazwa Twoja klasa.
Pojawia się "Wyrażenie nie może zawierać wyrażeń lambda" z tą składnią –
var fields = whateverYourClassType.GetType().GetFields().Select(f => f.Name).ToList();
myClass.GetType().GetProperties()
pyta o polach nie właściwości. – user2913184
Pyta o zmienne, a nie pola. –
Będzie to lista nazw wszystkich pól w klasie (zarówno publicznych, jak i niepublicznych, zarówno statyczne i pola Instancji):
BindingFlags bindingFlags = BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance |
BindingFlags.Static;
foreach (FieldInfo field in typeof(TheClass).GetFields(bindingFlags))
{
Console.WriteLine(field.Name);
}
Jeśli chcesz dostać pola na podstawie jakiejś instancji obiektu zamiast użyć GetType
zamiast:
foreach (FieldInfo field in theObject.GetType().GetFields(bindingFlags))
{
Console.WriteLine(field.Name);
}
To zadziałało dla mnie. Próbowałem uzyskać wszystkie wyliczenia w mojej klasie: 'MyEnum enum = (MyEnum) 0;' –
Niekoniecznie pada pytanie - ale oto jak aby uzyskać wartości wszystkich właściwości typu Decimal z obiektu o nazwie "inv":
var properties = inv.GetType().GetProperties();
foreach (var prop in properties)
{
if (prop.ToString().ToLower().Contains("decimal"))
{
totalDecimal += (Decimal)prop.GetValue(inv, null);
}
}
- 1. Jak wyświetlić listę wszystkich zmiennych środowiskowych w Vimie?
- 2. Jak wyświetlić listę wszystkich zmiennych wiążących za pomocą GroovyShell
- 3. Jak wyświetlić listę wszystkich zmiennych środowiskowych w C/C++ aplikacji
- 4. python - jak wyświetlić rozmiar wszystkich zmiennych
- 5. Jak wyświetlić listę wszystkich pakietów w Nuget
- 6. zapętlanie wszystkich zmiennych członkowskich klasy w pythoniu
- 7. Jak wyświetlić listę wszystkich zmiennych lokalnych w ramach metody/funkcji Java?
- 8. Jak wyświetlić listę wszystkich metod dla obiektu w Ruby?
- 9. Jak wyświetlić listę wszystkich meldowań przy użyciu ClearCase?
- 10. Jak wyświetlić listę wszystkich rozszerzeń plików binarnych w drzewie katalogów?
- 11. Jak wyświetlić listę wszystkich funkcji w module Pythona?
- 12. Jak wyświetlić listę wszystkich baz danych w powłoce Mongo?
- 13. Jak wyświetlić listę wszystkich klas zgodnych z protokołem w Swift?
- 14. Jak mogę wyświetlić listę wszystkich modułów w repozytorium CVS?
- 15. Jak wyświetlić listę wszystkich atrybutów obiektu w python pdb?
- 16. Jak mogę wyświetlić listę wszystkich wątków uruchomionych przez setTimeout/setInterval
- 17. Jak wyświetlić listę wszystkich zarządzanych obiektów w stercie w .Net?
- 18. Jak mogę wyświetlić listę wszystkich przydziałów otrzymanych przez użytkownika?
- 19. Jak wyświetlić listę wszystkich ścieżek automatycznego ładowania w Railsach 3
- 20. Jak mogę wyświetlić listę wszystkich plików w katalogu z Perl?
- 21. Jak wyświetlić listę wszystkich modeli, łącznie z problemem?
- 22. Jak wyświetlić listę wszystkich zdefiniowanych środowisk w aplikacji Rails 3?
- 23. Jak mogę wyświetlić listę wszystkich wyzwalaczy bazy danych w sqlite?
- 24. Jak wyświetlić listę wszystkich procesów działających w systemie Windows?
- 25. Jak szybko wyświetlić listę wszystkich okien na ekranie?
- 26. Jak wyświetlić listę wszystkich wdrożonych wersji w eksploratorze activiti
- 27. Jak wyświetlić listę skonfigurowanych repozytoriów?
- 28. Jak wyświetlić listę wszystkich klas ścieżki klasy, która implementuje dany zbiór interfejsów?
- 29. Jak wyświetlić listę zależności JAR
- 30. Czy istnieje sposób, aby programowo wyświetlić listę wszystkich zależności gradle?
Przez "zmienne" rozumie się pola, właściwości lub jedno i drugie? –
Pola, sory i zredagowałem mój post. – Burimi
_Pokaż mi kodek _... Tutaj jest dokument: http://msdn.microsoft.com/en-us/library/sa5z9w50.aspx – sehe