我有一个函数,它接受来自Api link
的所有Json
值,并将它们全部反序列化为对象列表。我需要比较该object list
与all ID values listed here之间的ID value
。然而使用我使用的功能on the other Api link不起作用,因为返回Json
结构,这一个没有。c#如果Web链接上不存在ID值,则从列表中删除对象
// parameters given are "http://www.gw2spidy.com/api/v0.9/json/item-search/iron/" + "1"
var spidyApi_idByName = api_Handler.objFromApi_idToName(spidyApiUrl, startPage);
,其中上面的代码中调用
public static RootObject objFromApi_idToName(string spidyApiUrl, int page)
{
RootObject rootObject = null;
RootObject tempRootObject = null;
do{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(spidyApiUrl + "/" + page);
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream()){
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
var jsonReader = new JsonTextReader(reader);
var serializer = new JsonSerializer();
tempRootObject = serializer.Deserialize<RootObject>(jsonReader);
if (rootObject == null){
rootObject = tempRootObject;
}
else{
rootObject.results.AddRange(tempRootObject.results);
rootObject.count += tempRootObject.count;
}
}
page++;
}
while (tempRootObject != null && tempRootObject.last_page != tempRootObject.page);
return rootObject;
}
我如何检查ID值spidyApi_idByName exist here,如果他们不从对象列表中删除的功能。
编辑,更一般的信息:
我有一个文本框,您可以输入您的搜索。然后发送到Api链接以将文本转换为与搜索匹配的项目的ID。搜索铁的示例将返回all these values。不过,我需要检查这些项目是否可销售,有两种做法。
I can access this link,这些都是可销售的所有ID,并检查对象列表中的哪个项目ID不存在于上面的链接中。
或者取对象列表中的Item ID,并从不同的Api链接中检索更多信息。该链接包含一个名为Flags的属性,如果此属性的值为“NoSell”,则应将其从对象列表中删除。 Example link,这个项目有财产标志与价值NoSell
短:将文本翻译成项目ID,检查此ID是否可销售。
指定更多详细信息一般情况下你想做什么,没有实现细节。像“我如何比较两个集合与某些规则”或“我如何从一个集合中排除其他项目”。 – Yura 2015-04-06 12:53:31
@Yura我已经编辑了我的问题,更详细地描述了我所要求并试图实现的内容。希望它有帮助 – 2015-04-06 13:07:04