C# 从JSON创建不同的项目列表

C# 从JSON创建不同的项目列表,c#,json,C#,Json,我有一个JSON,如下所示- [ { "From": "London", "To": "Dubai", "Duration": "4" }, { "From": "Dubai", "To": "Mumbai", "Duration": "8" }, { "From": "Dubai", "To": "Dhaka", "Duration": "4" } ] 正如您所看到的,JSON在到和从字段中有位置

我有一个JSON,如下所示-

[
  {
    "From": "London",
    "To": "Dubai",
    "Duration": "4"
  },
  {
    "From": "Dubai",
    "To": "Mumbai",
    "Duration": "8"
  },
  {
    "From": "Dubai",
    "To": "Dhaka",
    "Duration": "4"
  }
]
正如您所看到的,JSON在
字段中有位置。我正在使用

List<model> list = new List<model>();

         foreach (var item in lines)
         {

           string[] fields = item.Split(',');
           list.Add(new model
           {
            From = fields[0],
            To = fields[1],
            Duration = fields[2]
            });
         }
     var json = JsonConvert.SerializeObject(list, Formatting.Indented);
最后,我想创建一个名为
Cities
列表
,它只包含来自JSON的
不同的
城市名称,不重复。 i、 e.迪拜在JSON中出现三次


有什么想法吗?

我不确定你是直接指json还是解析列表。假设您指的是列表,您可以使用Linq从列表中选择所需的不同元素:

var cities = list.Select(x => x.To).Distinct();

谢谢你,丹。它可以工作,但我不理解代码。特别是
list.Select(x=>x.To)
我相信它的lambda表达式是正确的吗?是的,这是正确的,基本上你是在根据一个条件将原始列表投影到一个新列表中。我的理解是,“x=>x.To”是从每个元素中选择“To”字段作为一个新列表,Distinct()接受您的新列表,并选择Distinct(unique)元素作为一个新列表。我强烈建议您做一些阅读/Linq教程,因为您可能会发现这很有用。这是一个很好的起点:好吧,现在我看到一个问题。。我的要求是从到和从字段中获取城市名称,并将它们区分开来。在上面的解决方案中,我只得到了
不同!
var cities = list.Select(x => x.To).Distinct();