如何从列表中获取唯一记录?
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"});
在这种情况下,我希望自定义List<VinDecoded>()
只有匹配的SquishVin为“2233”。
我试过哪个不起作用。我得到了Key而没有List。我只想要没有列表的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?
}
}
答案 0 :(得分:0)
GroupBy(x => x.SquishVin)
将返回IEnumerable<IGrouping<string, VinDecoded>>
,而IGrouping<string, VinDecoded>
会有一个名为Key的属性,在该组中的所有SquishVin
个对象中返回VinDecoded
。 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());
}
}