使用C#中的LINQ创建一个列表<T>,其中T为匿名类型

Vah*_*hid 0 c# linq anonymous-types

假设我们有List<Item> data,并且Item类定义如下:

public class Item
{
    public double Station { get; set; }
    public double Area { get; set; }

    ...
    // other properties present in the class

}
Run Code Online (Sandbox Code Playgroud)

现在我们如何创建一个新List<T>List<Item>,所以这T是一个只有double Stationdouble Area作为其属性的匿名类型.

我知道如何将所有的站点和区域值提取到一个List<double> data2但我想要的是不同的.

var data2 = data
    .SelectMany(x => new[] { x.Station, x.Area })
    .ToList();
Run Code Online (Sandbox Code Playgroud)

Har*_*sad 7

我想你需要的是......

var data2 = data
    .Select(x => new { x.Station, x.Area })
    .ToList();
Run Code Online (Sandbox Code Playgroud)

SelectMany这里不需要,通常用于展平层次结构.