我有一个名单 - 值对的列表,我希望以一种漂亮的报告格式。是否可以将其用作ReportViewer对象的数据源?这是在WinForms和ASP。
答案 0 :(得分:3)
我能够将Dictionary转换为DataTable并将其用作DataSource。
var table = new DataTable();
var kvps = dictionary.ToArray();
table.Columns.AddRange(kvps.Select(kvp => new DataColumn(kvp.Name)).ToArray());
table.LoadDataRow(kvps.Select(kvp => kvp.Value).ToArray(), true);
bindingSource.DataSource = table;
瞧
答案 1 :(得分:0)
我相信你必须创建一个类来封装你想在报告中显示的项目。有关如何将类绑定到报表,请参阅my answer至this question。
VB.NET中的代码,但你可以很容易地遵循它。
答案 2 :(得分:0)
我认为这不会在ReportViewer中自然绑定。只需将它们放在具有要绑定的属性的自定义对象列表中即可。这不会是很多开销(如List。
答案 3 :(得分:0)
词典不适合作为列表的数据源。它们经过优化,可以检索给定键的值。不过,您可以从字典中检索键,值和键/值对,如下所示:
var keys = dict.Keys;
var values = dict.Values;
var keyValuePairs = dict.OrderBy(x => x.Value);
foreach (KeyValuePair<string, int> item in keyValuePairs) {
Console.WriteLine("Key = {0}, Value = {1}", item.Key, item.Value);
}