使用LINQ和C#从旧列表中创建一个新列表

这应该很简单,但我是LINQ的新手.我有一个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不一定是一个很好的选择(除非你有充分的理由,否则更喜欢类).

或完全避免使用LINQ:

List<NewFillStruct> newList = origList.ConvertAll(x => new NewFillStruct {
    numlong = x.buy - x.sell, date = x.date
});

转载注明原文:使用LINQ和C#从旧列表中创建一个新列表 - 代码日志