如何从XML文件到DataGridView编写多维数组 [英] How to write multi demensional Array from XML file to DataGridView

查看:81
本文介绍了如何从XML文件到DataGridView编写多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

晚上好。我有q问题。也许你可以帮助我。我怎样才能将XML文件中的数据加载到DataGridView,如下表所示:

Good Evening.I have q question to you.Maybe you can help me.How can I load a Data from XML file to DataGridView like the table below:

y\x  [0,10]    0.000976563 0.000976563 0.000976563 0.000976563 0.000976563
y\x  [2,15]    0.000976563 0.000976563 0.000976563 0.000976563 0.000976563
y\x  [4,30]    0.000976563 0.000976563 0.000976563 0.000976563 0.000976563
y\x  [6,40]    0.000976563 0.000976563 0.000976563 0.000976563 0.000976563
y\x  [8,55]    0.000976563 0.000976563 0.000976563 0.000976563 0.000976563



我的XML文件的结构是:


The structure of my XML file is:

  <?xml version="1.0" standalone="yes"?>
        <Tag>
          <Parameter>
            <Name>Parameter1</Name>
            <Size_X>7</Size_X>
            <Size_Y>2</Size_Y>
            <Value_X>0;2;8;12;14;16;19;</Value_X>
            <Value_Y>-20;-10;</Value_Y>

<Value>0000000000000;5.0000000000000000;10.0000000000000000;15.0000000000000000;20.0000000000000000;25.0000000000000000;0000000000000;5.0000000000000000;10.0000000000000000;15.0000000000000000;20.0000000000000000;25.0000000000000000;</Value>
          </Parameter1>
          <Parameter2>
            <Name>Parameter2</Name>
            <Size_X>7</Size_X>
            <Size_Y>3</Size_Y>
            <Value_X>0;2;4;6;8;10;12;</Value_X>
            <Value_Y>20;40;60;</Value_Y>
<Value>0000000000000;5.0000000000000000;10.0000000000000000;15.0000000000000000;20.0000000000000000;30.0000000000000000;     0000000000000;5.0000000000000000;10.0000000000000000;15.0000000000000000;20.0000000000000000;30.0000000000000000;0000000000000;5.0000000000000000;10.0000000000000000;15.0000000000000000;20.0000000000000000;30.0000000000000000;</Value>
              </Parameter2>
            </Tag>



我试过下一个代码,但它不起作用:


I Have tried the next code, but it does not work:

XDocument xmlDoc = XDocument.Load("C:\\Write.xml");
            var variables = from variable in xmlDoc.Descendants("Parameter")
                            where variable.Element("Name").Value == "Parameter1"
                            select new
                            {
                                Name = variable.Element("Name").Value,
                                SizeX = variable.Element("Size_X").Value,
                                SizeY = variable.Element("Size_Y").Value,
                                ValueX = variable.Element("Value_X").Value,
                                ValueY = variable.Element("Value_Y").Value,
                                Value = variable.Element("Value").Value,
                            };

            foreach (var variable in variables)
            {

                var x = Convert.ToInt32(variable.SizeX);
                var y = Convert.ToInt32(variable.SizeY);
                dataGridView1.TopLeftHeaderCell.Value = "y/x";

                var arr = new double[y, x];//{Value} it must be the value here???
                var columnCount = arr.GetUpperBound(1) + 1;
                var rowCount = arr.GetUpperBound(0) + 1;

                for (int i = 0; i < columnCount; i++)
                {
                    dataGridView1.Columns.Add(i.ToString(), variable.ValueX);
                }
                for (int i = 0; i < rowCount; i++)
                {

                    dataGridView1.Rows.Add(i.ToString(),variable.ValueY);
                    for (int k = 0; k < columnCount; k++)
                    {
                        dataGridView1.Rows[i].Cells[k].Value = arr[i, k];
                    }

                }



非常感谢您的回答。


Yuri


Thanks a lot for your Answer.

Best Regards,
Yuri

推荐答案

你不能用以下方法替换foreach循环:

Can't you just replace the foreach loop with:
datagridview1.DataSource=variables;


这篇关于如何从XML文件到DataGridView编写多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆