使用我的代码,我可以从维基百科文章中生成很多地方名称。假设如果我查找弗伦斯堡维基百科页面,它将提供所有地点的外部页面链接作为名称。所以此时所有的地方都在输出中显示为列表形式,如
Maasbüll
Bov Municipality
Hürup
Hürup(Amt)
Kupfermühle
.........and so on...
现在我想做的是,我想存储与其城市名称配对的所有这些地方。假设这里弗伦斯堡是城市的名字。所以我想按照以下方式存储它 -
Flensburg;Maasbüll;Bov Municipality;Hürup;Hürup(Amt);Kupfermühle.... so on..
我生成所有地方列表的代码如下 -
using (var client = new HttpClient())
{
var response = client.GetAsync("https://en.wikipedia.org/w/api.php?action=query&list=geosearch&gsradius=10000&gspage=Flensburg&gslimit=500&gsprop=type|name|dim|country|region|globe&format=json").Result;
if (response.IsSuccessStatusCode)
{
var responseContent = response.Content;
string responseString = responseContent.ReadAsStringAsync().Result;
var obj = JsonConvert.DeserializeObject<RootObject>(responseString).query.geosearch.Select(a => a.title).ToList();
foreach (var item in obj)
{
Console.WriteLine(item);
}
}
}
我想知道如何像我提到的那样存储我的数据。
答案 0 :(得分:2)
using System.Collections.Generic;
代码:
Dictionary<string, string> cities = new Dictionary<string, string>();
string query = "Flensburg";
using (var client = new HttpClient())
{
var response = client.GetAsync("https://en.wikipedia.org/w/api.php?action=query&list=geosearch&gsradius=10000&gspage=" + WebUtility.UrlEncode(query) + "&gslimit=500&gsprop=type|name|dim|country|region|globe&format=json").Result;
if (response.IsSuccessStatusCode)
{
var responseContent = response.Content;
string responseString = responseContent.ReadAsStringAsync().Result;
var obj = JsonConvert.DeserializeObject<RootObject>(responseString).query.geosearch.Select(a => a.title).ToList();
List<string> places = new List<string>();
foreach (var item in obj)
{
places.Add(item);
}
cities[query] = string.Join(";", places);
Console.WriteLine(query + ":" + cities[query]);
var output = query + ";" + cities[query];
File.WriteAllText(@"C:\C# Visual Studio\City.txt", output);
}
}
答案 1 :(得分:0)
根据您自己的标记,A Dictionary会完全按照您的意愿行事。
Dictionary<string, Object> cities = new Dictionary<string, Object>();
cities.Add(name, item);
答案 2 :(得分:0)
这样做 -
var output = String.Join(";", obj );
答案 3 :(得分:0)
Dictionary<cityname,List<associated places>> d = new Dictionary<cityname,List<associated places>>();
键将是您搜索的城市名称,值是包含所有相关位置的列表
使用字典的单个键在列表中添加多个地点作为值。