定义动态匿名类型的属性

时间:2015-10-02 09:28:25

标签: c# anonymous-types

我有一个带有键的字典和一个IEnumerable的值。

var rowsByMonth = dictionaryByMonth.Select(item => new
{
    Station = item.Key.DisplayName,
    Month1 = item.Value.FirstOrDefault(element => element.ColumnIndex == 0),
    Month2 = item.Value.FirstOrDefault(element => element.ColumnIndex == 1),
    Month3 = item.Value.FirstOrDefault(element => element.ColumnIndex == 2),
    Month4 = item.Value.FirstOrDefault(element => element.ColumnIndex == 3)
});

问题是我如何动态创建属性Month1,Month2,...取决于不同ColumnIndex的数量。也许我可以使用不同的ColumnIndex元素。 ColumnIndexes是可变的。我需要一个具有已定义属性的匿名类型,因为我想将它绑定到DataGrid

1 个答案:

答案 0 :(得分:1)

我希望我能正确理解你的问题

我认为您需要使用Tuple,因为您需要灵活的数据结构

链接:https://msdn.microsoft.com/en-us/library/system.tuple(v=vs.110).aspx

样品:

var population = Tuple.Create(item.Key.DisplayName, item.Value.FirstOrDefault(element => element.ColumnIndex == 0), etc, etc);

然后你可以获得population.Item1population.Item2