Это должно быть довольно просто, но я являюсь новым в LINQ. У меня есть a List<FillStruct>
из FillList
структуры. Я хотел бы использовать LINQ для создания нового List<NewFillStruct>
где вместо того, чтобы иметь количество покупок и продает, у меня была бы одна переменная, содержащая сумму.
Например, если FillStruct
структура имеет
buy = 4
и
sell = 2
затем NewFillStruct
структура будет иметь
numlong = 2.
Если FillStruct
структура имеет
buy = 2
и
sell = 4
затем NewFillStruct
структура будет иметь
numlong = -2.
Вот структуры.
struct FillStruct
{
int buy;
int sell;
string date;
}
struct NewFillStruct
{
int numlong;
string date;
}
List<FillStruct> origList = ...
List<NewFillStruct> newList = origList.Select(x => new NewFillStruct {
numlong = x.buy - x.sell, date = x.date
}).ToList();
Однако обратите внимание, что struct
не обязательно хороший выбор для этого (предпочтительнее class
, если у вас нет веской причины).
Или полностью избежать LINQ:
List<NewFillStruct> newList = origList.ConvertAll(x => new NewFillStruct {
numlong = x.buy - x.sell, date = x.date
});
Это выберет все ваши данные из перечисляемых «fillstructs» и создаст перечислимый объект «NewFillStruct», содержащий вычисленные значения.
var newfills = from fillstruct in fillstructs
select new NewFillStruct
{
numlong = fillstruct.buy - fillstruct.sell,
date = fillstruct.date
};