2016-06-03 2 views
1

다음과 같이 C#을 사용하여 변수를 사용하여 목록 필드에 액세스 할 수 있습니까? 당신은, 그러나 대신 List의 -변수를 사용하여 목록 필드에 액세스

string myField = "ImmediateAddress"; 
byte returnByte = mnemonicList[0].myField; 
+1

달성하고자하는 것은 무엇입니까? – Waescher

+0

그리고'mnemonicList'는 어떤 타입입니까? –

+0

"예,하지만 매우 효율적이지는 않습니다"(형식에서 키 API를 노출하지 않은 경우) –

답변

1

런타임에 필드에 액세스 할 수 있으며,이 많은 도움 경우 검증

mnemonicList[0].GetType().GetProperty(myField).GetValue(mnemonicList[0], null); 
+0

고맙습니다. 새로운 것을 배울 수있는 새로운 것 (반영)이라고 생각합니다. –

+0

흠, 내가 이것을 가지고 있다고 생각했지만 내 목록 내에서 int 필드를 반환하려고 시도했을 때 작동하지 않습니다. GetProperty (myField)가 문자열을 원하는 것으로 보입니다. myField를 아무 쓸모없는 캐스팅 시도했다. 어떤 아이디어? –

0

잘 모르겠어요를 추가하는 것을 잊지 마세요 반사를 사용하여 대신 dictionary을 사용할 수 있습니다. 잘못된 해결책을 제안한다면 알려주십시오. 그러나이 방법을 사용하면 dictObject["keyToValue"]과 같이 문자열과 같은 객체로 항목에 액세스 할 수 있습니다. List 대신 Dictionary을 사용해야하지만 문자열로 항목을 찾으려면 가장 쉬운 방법입니다.

관련 문제