Как получить результат группировки в виде списка из перечислимого списка?
Как получить уникальные записи из списка?
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".
Это я попробовал, которые не работают. Я получаю ключ, а не список. Я хочу только 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?
}
}
1 ответ
Решение
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());
}
}