c#要列出的数据表/数据网格<;T>;

c#要列出的数据表/数据网格<;T>;,c#,wpf,datatable,datagrid,C#,Wpf,Datatable,Datagrid,我将数据从excel拉入一个数据表,然后拉入一个数据网格。数据格式类似于 "Time","Dist","speed","susp","rpm" "0.000","0","235","29","13550" "0.005","1","240","28.5","13560" "0.010","2","245","28","13570" "0.015","3","250","27.5","13580" "0.020","4","255","27","13590" "0.025","5","260","

我将数据从excel拉入一个
数据表
,然后拉入一个
数据网格
。数据格式类似于

"Time","Dist","speed","susp","rpm"
"0.000","0","235","29","13550"
"0.005","1","240","28.5","13560"
"0.010","2","245","28","13570"
"0.015","3","250","27.5","13580"
"0.020","4","255","27","13590"
"0.025","5","260","26.5","13600"
"0.030","6","265","26","13610"
但是,我拥有的列的数量和名称是未知的,并且会随着数据集的不同而变化

在按钮点击事件(WPF)中拉入数据

如何将这些列中的每一列放入单独的值列表中,其中列表的名称由列标题给出

然后我会用这些来绘制x,y图表;(时间,rpm)或(距离,rpm)-我可以这样做,但我似乎无法遍历
数据表
数据网格
中指定列中的值


我对c#和编程一般来说是新手,如果这是初级的,我很抱歉,并提前感谢您提供的任何帮助

您可以将列表存储在
字典中


您可以将列表存储在
词典中


谢谢,我需要阅读更多关于使用字典的内容。有没有办法通过foreach循环或similair返回特定列的内容?正在考虑将数据放入一个x,y数据系列中。。谢谢,您可以通过ColumnName:list values=dict[“ColumnName”]获取列表;明亮的谢谢你,蒂姆。。最后一点,我保证!我能把这些字典放在一起吗?所以我最终会得到一本列表字典。。。这有意义吗?我将有多个列表字典,每个字典都有相同的标题。。当我从不同的字典中获取列时,如果它们嵌套在另一个字典中,这会导致问题吗?再次感谢谢谢你,我需要阅读更多关于使用字典的内容。有没有办法通过foreach循环或similair返回特定列的内容?正在考虑将数据放入一个x,y数据系列中。。谢谢,您可以通过ColumnName:list values=dict[“ColumnName”]获取列表;明亮的谢谢你,蒂姆。。最后一点,我保证!我能把这些字典放在一起吗?所以我最终会得到一本列表字典。。。这有意义吗?我将有多个列表字典,每个字典都有相同的标题。。当我从不同的字典中获取列时,如果它们嵌套在另一个字典中,这会导致问题吗?再次感谢
    private void databtn_Click(object sender, RoutedEventArgs e)
    {
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.DefaultExt = ".xlsx";
            openfile.Filter = "(.xlsx)|*.xlsx";

            var browsefile = openfile.ShowDialog();

            if (browsefile == true)
            {
                datafilepath.Text = openfile.FileName;

                ExcelEngine excelEngine = new ExcelEngine();

                IApplication application = excelEngine.Excel;

                application.DefaultVersion = ExcelVersion.Excel2013;

                IWorkbook workbook = application.Workbooks.Open(datafilepath.Text);

                IWorksheet worksheet = workbook.Worksheets[0];

                DataTable dt = worksheet.ExportDataTable(worksheet.UsedRange, ExcelExportDataTableOptions.ColumnNames);

                DG.ItemsSource = dt.DefaultView;
            }
        }
    }
Dictionary<string, List<object>> dict = dt.Columns.Cast<DataColumn>()
    .ToDictionary(c => c.ColumnName, c => dt.AsEnumerable().Select(r => r[c]).ToList());
foreach (var kv in dict)
   Console.WriteLine($"Column: {kv.Key}, All values: {String.Join(",", kv.Value)}");