Используйте LINQ и C# для вхождения в новый Список из старого Списка

Это должно быть довольно просто, но я являюсь новым в 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;
}
9
задан Marc Gravell 15 March 2010 в 06:26
поделиться

2 ответа

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
});
21
ответ дан 4 December 2019 в 08:51
поделиться

Это выберет все ваши данные из перечисляемых «fillstructs» и создаст перечислимый объект «NewFillStruct», содержащий вычисленные значения.

 var newfills = from fillstruct in fillstructs
               select new NewFillStruct
               {
                   numlong = fillstruct.buy - fillstruct.sell,
                   date = fillstruct.date
               };
3
ответ дан 4 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: