无法访问 List 对象中的特定数据<Rootobject>



我有一个json文件,我已经对其进行了反序列化并将数据添加到List<Rootobject>中。

json文件如下。

{"_id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}}{"_id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.66666 8,"lat":55.683334}}{"_id":1283378,"name":"Gorkhā","country":"NP","coord":{"lon":84.633331,"lat":28}}

它有20万个这样的行。

我已将其反序列化如下。

public List<Rootobject> list=new List<Rootobject>();
public List<Rootobject> ReadAllCities()
{
var lines = File.ReadAllLines("Assets/city_list.json");
foreach (var line in lines)
{
var res = JsonConvert.DeserializeObject<Rootobject>(line);
list.Add(res);
}
return list;
}

现在我只想从列表中检索"name"属性并创建一个List<String>对象。我正在尝试使用foreach来做到这一点。但我得到了编译错误。

它说Rootobject不包含名称的定义。

请帮忙。。。

假设Rootobject定义为…

public class Rootobject {
public int _id { get; set; }
public string name { get; set; }
public string country { get; set; }
public Coord coord { get; set; }
}

CCD_ 5是…

public List<Rootobject> list = new List<Rootobject>();

填充了对象。

您可以使用LINQ选择name

List<string> namesList = list.Select(i => i.name).ToList();

或者如果您想使用foreach。。。

List<string> namesList = new List<string>();
foreach(var item in list) {
string name = item.name;
namesList.Add(name);
}