2008-10-28 6 views
2

PropertyCollection에서 속성 값을 추출하는 방법은 무엇입니까?C# PropertyCollection에서 속성 값을 추출하는 방법은 무엇입니까?

아래 줄에있는 '속성'을 드릴 다운하면 시각적으로 볼 수 있지만 그 값은 어떻게 볼 수 있습니까?

foreach (string propertyName in result.Properties.PropertyNames) 
{ 
    MessageBox.Show(ProperyNames[0].Value.ToString()); <--Wrong! 
} 
+1

'결과'유형은 무엇입니까? 속성의 속성 중 어느 값을 원하십니까? –

답변

0

은 함수 내에서 대문자가되는 것을 의미합니까?

다시 한번 말하지만, 나는이 모든 속성을 가지고 정확히 무엇을했는지 조금 혼란스러워해야합니다. 이것은 클래스 속성 값입니까, 아니면 나중에 적용 할 인스턴스입니까?

-1

시도 :

foreach (string propertyName in result.Properties.PropertyNames) 
{ MessageBox.Show(properyName.ToString()); <--Wrong! 
} 
2

이 시도 :

foreach (string propertyName in result.Properties.PropertyNames) 
{ 
    MessageBox.Show(result.Properties[propertyName].ToString()); 
} 

또는이 :

foreach (object prop in result.Properties) 
{ 
    MessageBox.Show(prop.ToString()); 
} 

을 또한 : 프레임 워크에서 몇 가지 다른 PropertyCollections 클래스가 있습니다. 이 예제는 System.Data 클래스를 기반으로하지만 System.DirectoryServices 클래스를 사용할 수도 있습니다. 그러나 이들 클래스 중 어느 것도 실제로 "반영"하지 않습니다. 리플렉션은 System.Reflection 네임 스페이스와 몇 가지 특수 연산자를 제외하고 다른 무언가를 나타냅니다.

+0

proeprtyname 다음에 색인이 필요합니다. 즉, result.Properties [propertyName] [0] .ToString() – SteveCav

0

PropertyNames는 다른 곳에서는 대문자가 아니므로 아래 코드가 작동하며 속성 이름이 표시되지만 값을 읽고 싶습니다. 'PropertyName'은 단지 문자열입니다.

foreach (string propertyName in result.Properties.PropertyNames) 
{ 
    MessageBox.Show(PropertyName.ToString()); 
} 
0

나는 당신이 원하는 것을 확신하지 못했지만, 문제는 당신이 그 값 대신 속성 이름을보고 있다는 것입니다.

그렇다면 PropertyCollection.Values ​​컬렉션이 아니라 PropertyCollection.PropertyNames 컬렉션을 통해 열거하고있는 것입니다.

foreach (object value in result.Properties.Values) 
{ 
    MessageBox.Show(property.ToString()); 
} 

나는이 질문 때문에로 propertyNames에 대한 참조의 System.Data.PropertyCollection을 System.DirectoryServices.PropertyCollection 클래스에 언급하지 가정했지만, 지금은 '이 대신 같은 것을 시도 확실하지 않아. 질문이 System.Data 버전에 관한 것이라면이 대답을 무시하십시오. 위에서 언급 한 바와 같이

0

Vb.NET

For Each prop As String In result.Properties.PropertyNames 
       MessageBox.Show(result.Properties(prop).Item(0), result.Item(i).Properties(prt).Item(0)) 
Next 

나는 C 번호는 다음과 같습니다 생각 ...

foreach (string property in result.Properties.PropertyNames) 
{ 
    MessageBox.Show(result.Properties[property].Item[0]); 
} 

는 프레임 워크에 몇 가지 속성 컬렉션이 있습니다. 나는 아래의 코드를 사용하여 필요한 것을 얻을 내가 관리 위에서 몇 가지 힌트를 사용

2

: 모든

ResultPropertyValueCollection values = result.Properties[propertyName]; 
    if (propertyName == "abctest") 
    { 
     MessageBox.Show(values[0].ToString()); 
    } 

감사합니다.

0

"if"안에 값 컬렉션을 넣으면 루프를 통과 할 때가 아니라 실제로 필요할 때만 값 컬렉션을 가져옵니다. 그냥 제안 ... :)

관련 문제