如何从可枚举列表中获取分组结果作为列表?

How to get grouping result as a list from the enumerable list?

如何从列表中获取唯一记录?

public class VinDecoded
{
    public string SquishVin {get;set;} = "";
    public string Year {get;set;} = "";
    public string Make {get;set;} = "";
}
var modelVinDecodeds = new List<VinDecoded>();

modelVinDecodeds.Add(new VinDecoded() {SquishVin="1234",Year="2007",Make="Ford"});
modelVinDecodeds.Add(new VinDecoded() {SquishVin="2233",Year="2010",Make="Chevy"});
modelVinDecodeds.Add(new VinDecoded() {SquishVin="2233",Year="2010",Make="GMC"});

在这种情况下,我想获得只有“2233”匹配 SquishVin 的自定义 List<VinDecoded>()

这个我试过了,没用。我得到的是钥匙,没有清单。我只想要没有列表的 List<VinDecoded>() 数据。

var modelCustomVinDecoded = modelVinDecodeds.GroupBy(x => x.SquishVin).ToList();

foreach(var v in modelCustomVinDecoded)
{
    if (v.Key != "0033")
    {
         FooSave(v.???);   //Where's the list coming from the v part?
    }
}

GroupBy(x => x.SquishVin) 将 returns 一个 IEnumerable<IGrouping<string, VinDecoded>>IGrouping<string, VinDecoded> 有一个 属性 调用的 Key 返回所有 [=15= 中的 SquishVin ] 组中的对象。 IGrouping<string, VinDecoded> 也是一个 IEnumerable<VinDecode>,因此您可以对其进行迭代或将其转换为列表。

你可以这样做:

var modelCustomVinDecoded = modelVinDecodeds.GroupBy(x => x.SquishVin).ToList();

foreach(var v in modelCustomVinDecoded)
{
    if (v.Key != "0033")
    {
        FooSave(v.ToList());
    }
}