У меня есть список следующего класса:
public class PostOrderDataModel
{
public string OCN { get; set; }
public string Quantity { get; set; }
public string VerticalTypeName { get; set; }
public Dictionary<string, string> VerticalTypeQuantity { get; set; }
}
, имеющий несколько экземпляров с одинаковым OCN:
List<PostOrderDataModel> lstPostOrderDataModel = new List<PostOrderDataModel>();
lstPostOrderDataModel[0] = new PostOrderDataModel { OCN = "AX", Quantity = "1", VerticalTypeName = "Internet", VerticalTypeQuantity = null} ;
lstPostOrderDataModel[1] = new PostOrderDataModel { OCN = "AX", Quantity = "2", VerticalTypeName = "Video", VerticalTypeQuantity = null};
lstPostOrderDataModel[2] = new PostOrderDataModel { OCN = "BX", Quantity = "2", VerticalTypeName = "Phone", VerticalTypeQuantity = null};
Теперь я хочу создать новый список PostOrderDataModel и заполнитьСловарь VerticalTypeQuantity с VerticalTypeName как key
и Количество как value
, сгруппированные по OCN.Я пробовал это, но таким образом я могу получить только один предмет против Ки.Как я могу получить доступ к обоим элементам (VerticalTypeName, Количество) и добавить их в свой словарь VerticalTypeQuantity
?
var results = lstPostOrderDataModel.GroupBy(
p => p.OCN,
p => p.VerticalTypeName,
(key, g) => new { OCN = key, VerticalTypeName = g.ToList() });
Приведенный выше код дает мне VerticalTypeName только для каждого OCN.Я тоже хочу количество, чтобы добавить его в свой словарь.