代码之家  ›  专栏  ›  技术社区  ›  Rod

从源列表中获取属性并添加到新列表,然后转换为Json

c#
  •  -2
  • Rod  · 技术社区  · 7 年前

    鉴于:

    List<AddressData> sourceList = new List<AddressData>();
    

    我需要在sourceList(FullAddress)中获取一个属性,并将其设置为Json字符串数组

    class AddressData
    {
      public string Street {get; set;}
      public string City {get; set;}
      public string State {get; set;}
      public string Zip {get; set;}
      public string FullAddress { get { return Street + "," + City "," + "State" + "," + Zip } }
    }
    

    我的思考过程:
    1、创建一个名为payload的新列表()
    2.迭代列表并将FullAddress添加到有效负载列表中
    3、序列化有效负载列表

    问:有没有更简洁的方法?

    payloadJson示例:

    [
      { 'address': 'value1'},
      { 'address': 'value2'},
    ]  
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Tyler Sells    7 年前

    如果您还不了解Linq,Select扩展可以很好地实现这一点。

    我在这里创建了一个演示: https://dotnetfiddle.net/FMZK50

    public static List<CondensedData> GetAddresses(List<AddressData> data)
    {
        return data.Select(m=>new CondensedData(){Address=m.FullAddress}).ToList();
    }
    public class CondensedData
    {
        public string Address {get;set;}
    }
    

    使用Newtonsoft。Json,序列化非常简单:

    var json = JsonConvert.SerializeObject(condensed);