我一定是遗漏了什么,但我似乎无法弄清楚如何通过名称/字符串获取属性,只能通过整数获取,这可能会改变(属性名称不会)。
您能解释一下我如何通过名称/字符串获取属性吗?字符串“active”尝试产生此错误:
Error 82 The best overloaded method match for 'System.Collections.Generic.List<Amazon.SimpleDB.Model.Attribute>.this[int]' has some invalid argumens
谢谢!
头发加米
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
{
}
}
最佳答案
您正在尝试访问 System.Collections.Generic.List<T>
就像它是一个关联数组,但它不是。 Enumerable.FirstOrDefault
方法可用于实现类似的目的:
Amazon.SimpleDB.Model.Attribute id =
item.Attribute.FirstOrDefault(attr => attr.Name == "active");
关于c# - 如何按名称而不是整数访问属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7639162/