我必须遗漏一些东西,但我似乎无法弄清楚如何通过名称/字符串获取属性,只能通过一个可能会更改的整数(属性名称不是)。
你能解释一下我如何通过名字/字符串获取属性吗?字符串“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
{
}
}
答案 0 :(得分:2)
你试图访问System.Collections.Generic.List<T>
,就像它是一个关联数组,但事实并非如此。 Enumerable.FirstOrDefault
方法可以用来实现类似的东西:
Amazon.SimpleDB.Model.Attribute id =
item.Attribute.FirstOrDefault(attr => attr.Name == "active");