2011-10-03 4 views
2

필자는 뭔가를 놓치고 있어야하지만, 이름/문자열로 속성을 얻는 방법을 알아낼 수는 없지만 변경 될 가능성이 높은 정수 (속성 이름이 아님) 만 사용해야합니다.정수가 아닌 이름으로 속성에 액세스하려면 어떻게해야합니까?

속성을 이름/문자열로 가져 오는 방법을 설명해 주시겠습니까? "활성"문자열이이 오류를 생성합니다.

Error 82 The best overloaded method match for 'System.Collections.Generic.List<Amazon.SimpleDB.Model.Attribute>.this[int]' has some invalid argumens 

고마워요!

Hairgami

using (sdb = AWSClientFactory.CreateAmazonSimpleDBClient(accessKeyID, secretAccessKeyID)) 
     { 
       String selectExpression = string.Format("select * from apps where appid = '{0}'", appID); 
       SelectRequest selectRequestAction = new SelectRequest().WithSelectExpression(selectExpression); 
       SelectResponse selectResponse = sdb.Select(selectRequestAction); 

       if (selectResponse.IsSetSelectResult()) 
       { 
        SelectResult selectResult = selectResponse.SelectResult; 
        foreach (Item item in selectResult.Item) 
        { 
         //Works fine 
         Amazon.SimpleDB.Model.Attribute id = item.Attribute[1]; 

         //How can I do this: 
         Amazon.SimpleDB.Model.Attribute id = item.Attribute["active"]; 

        } 
       } 
       else 
       { 

       } 
      } 

답변

2

당신은 그것이 아니다 연관 배열이의 같은 System.Collections.Generic.List<T>에 액세스하려고하고 있습니다.

Amazon.SimpleDB.Model.Attribute id = 
    item.Attribute.FirstOrDefault(attr => attr.Name == "active"); 
+0

고맙습니다. 도넛! LINQ 쿼리를 사용하지 않거나 모든 작업을 수행하고 있다고 생각하지 않았습니다. 그건 완벽하게 작동합니다. 땅에 닿지 않은 것을 모두 흔들어 라. 후후! –

관련 문제