У меня есть класс:Sum Список объектов с помощью Linq
public Class MyClass
{
public string name {get;set;}
public double quantity {get; set;}
public double price {get; set;}
public double value {get; set;}
public string id1 {get; set;}
public string id2 {get; set;}
}
List<MyClass> myList = new List<MyClass>();
список объектов затем заполняется, но то же имя может иметь несколько записей. Например, вот мой обзор списка:
[0] "stock A", 200.0, 20.0, 4000, "aa", "bb"
[1] "stock A", 400.0, 20.0, 8000, "aa", "bb"
[2] "stock B", 200.0, 20.0, 4000, "cc", "dd"
[3] "stock A", 200.0, 19, 3800, "aa", "bb"
[4] "stock C", 200.0, 20.0, 4000, "ee", "ff"
В настоящее время у меня есть следующий код:
var groupedStockList = (from t in myList
group t by new { t.name, t.price }
into grp
select new
{
grp.Key.name,
grp.Key.price,
Quantity = grp.Sum(x => x.quantity)
}).ToList();
В результате, со А сгруппированы, но 2 группы по 2 комплекта цен, поэтому у меня есть группа из 600 акций A по цене 20 и 200 акций по цене 19.
Я думал, что мне нужно пойти со средней ценой, то есть sum = (quantity * price)/total_quantity
, но я потерял, как включить это в linq.
Есть ли у кого есть подход к этому, кто может помочь? Я хотел бы сохранить идентификаторы 1 и 2 также в списке и просто сортировать по имени.
Спасибо.
EDIT
Что я хотел бы вернуться в это,
[0] "stock A", 800, 19.75, 15800, "aa", "bb"
[1] "stock B", 200.0, 20.0, 4000, "cc", "dd"
[2] "stock C", 200.0, 20.0, 4000, "ee", "ff"
Будьте в курсе, что вы хотите вернуть. «Обзор списка», например, был бы хорош ... –
ОК, я добавлю его сейчас – Timujin
Можете ли вы опубликовать код, который заполняет список? –