如何通过名称而不是整数来访问属性?

时间:2011-10-03 18:36:07

标签: c# amazon-web-services amazon-simpledb

我必须遗漏一些东西,但我似乎无法弄清楚如何通过名称/字符串获取属性,只能通过一个可能会更改的整数(属性名称不是)。

你能解释一下我如何通过名字/字符串获取属性吗?字符串“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 个答案:

答案 0 :(得分:2)

你试图访问System.Collections.Generic.List<T>,就像它是一个关联数组,但事实并非如此。 Enumerable.FirstOrDefault方法可以用来实现类似的东西:

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