2

我有一堂课:

    public class ChartData
    {        
      public Decimal? Value { get; set; }        
      public DateTime Date { get; set; }        
    }

我也有

    List<List<ChartData>> chartData = List<List<ChartData>>();

chartData 可以包含任意数量的列表,可以是一个,也可以是十个列表。

我需要把这个结构弄平。例如,如果我在 chartData 中有两个列表,我需要获取每个对象包含字段的对象列表:

    {
      Decimal? Value0
      Decimal? Value1
      DateTime Date
    }

如果我有十个列表,我需要获取每个对象包含字段的对象列表:

    {
      Decimal? Value0
      Decimal? Value1
      .
      .
      .
      Decimal? Value9
      DateTime Date
    }

是否可以使用 linq 或其他 C# 函数来做到这一点?

提前致谢。

4

2 回答 2

3

如果chartData真的可以包含任意数量的列表,那么您就不走运了,因为您无法在 .NET 类中动态创建字段。一个类的确切结构必须在编译时知道,即使它是一个匿名类。

您可以考虑使用

{
    List<Decimal?> Values,
    DateTime Date
}

或者

{
    Decimal?[] Values,
    DateTime Date
}

相反,它们都可以通过 LINQ 轻松创建。如果您详细说明为什么需要将它们作为单独的字段(可能是某种序列化要求?如果是,哪种格式?),SO 社区可能会提出替代解决方案。此外,您应该指定应该使用哪个Date值(如果它们不同)。

于 2012-11-27T14:26:01.430 回答
1

您可以使用 4.0 版中引入的 C# 的动态可能性。

请参阅有关财产袋的这篇SO 文章。

但是请注意,您会丢失任何编译时检查!在你这样做之前,请考虑两次。

于 2012-11-27T14:42:56.203 回答