从复杂的收藏中获取最新价值

时间:2018-11-22 13:27:04

标签: c# linq

我正在按顺序从MongoDb获取数据,键(不是唯一的)为 AB ,因此我必须汇总响应并使用Linq [c#]获取基于键的顶级唯一值

响应:

[{
        "AB": "XY",
        "BC": "TRAVEL",
        "CD": "75",
        "EF": "21"
    },
    {
        "AB": "TY",
        "BC": "STOP",
        "CD": "344",
        "EF": "55"
    },
    {
        "AB": "XY",
        "BC": "STOP",
        "CD": "45",
        "EF": "44"
    },
    {
        "AB": "ZZ",
        "BC": "STOP",
        "CD": "89",
        "EF": "33"
    },
    {
        "AB": "TY",
        "BC": "STOP",
        "CD": "67",
        "EF": "88"
    },
    {
        "AB": "ZZ",
        "BC": "TRAVEL",
        "CD": "14",
        "EF": "55"
    }
]

响应采用排序格式,即第一个响应是最新的

我想要产生的结果是:

[{
    "AB": "XY",
    "BC": "TRAVEL",
    "CD": "75",
    "EF": "21"
},
{
    "AB": "ZZ",
    "BC": "STOP",
    "CD": "89",
    "EF": "33"
},
{
    "AB": "TY",
    "BC": "STOP",
    "CD": "344",
    "EF": "55"
}]

因为AB键可以包含不同的值

1 个答案:

答案 0 :(得分:3)

好吧,您可以使用LINQ GroupBy方法:

var filteredResponse = response.GroupBy(o => o.AB).Select(g => g.First()).ToList();