как я могу получить доступ к атрибуту по имени, а не по целому числу? - PullRequest
2 голосов
/ 03 октября 2011

Мне должно быть что-то не хватает, но я не могу понять, как получить атрибут по имени / строке, только по целому числу, которое может измениться (имя атрибута - нет).

Не могли бы вы объяснить, как я могу получить атрибуты по имени / строке? Строка "active" попытка выдает эту ошибку:

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
                {

                }
            }

1 Ответ

2 голосов
/ 03 октября 2011

Вы пытаетесь получить доступ к System.Collections.Generic.List<T>, как к ассоциативному массиву, а это не так.Enumerable.FirstOrDefault метод может быть использован для достижения чего-то похожего:

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