用2 List <double> </double>创建一个数组

时间:2011-03-18 22:46:27

标签: c# arrays list multidimensional-array

更新 我尝试了Crazy的解决方案,但现在我在foreach循环中显示数据时遇到问题:

            foreach(double data in ztr.GetCurveDataForTestType())
            {
            richTextBox1.AppendText("Voltage" + data + "    ---------    ");
            richTextBox1.AppendText("Current" + data + "\r\n");
            }

该代码打印出如下内容:

Voltage-0.175    ---------    Current-0.175  
Voltage-9.930625E-06    ---------    Current-9.930625E-06  
Voltage-0.171875    ---------    Current-0.171875  
Voltage-9.53375E-06    ---------    Current-9.53375E-06  
Voltage-0.16875    ---------    Current-0.16875  

我该如何解决?

大家好,

我有一个xml文件,其中包含曲线的电压和当前值。我想绘制这条曲线,以便在笛卡尔坐标系中,电压为X,电流为Y.

我可以像下面的代码一样轻松地从XML文件中获取电压和电流值。但我想知道如何在一个很好的干净数组中返回这个值,以后我可以轻松使用。

这是我的代码:

    public double[,] GetCurveDataForTestType()
    {
        List<double> voltage = new List<double>();
        List<double> current = new List<double>();

        XPathNodeIterator volt = nav.Select("some XPATH");
        XPathNodeIterator curr = nav.Select("some XPATH");

       foreach (XPathNavigator value in volt)
       {
           voltage.Add(Convert.ToDouble(value.Value));
       }

       foreach (XPathNavigator value in curr)
       {
           current.Add(Convert.ToDouble(value.Value));
       }

        return null; //How should I reurn a nice array to use for drawing a curve(Voltage as X and current as Y)
    }

4 个答案:

答案 0 :(得分:2)

这个怎么样......

   double[,] data = new double[voltage.Count(), 2];
    for (int i = 0; i < voltage.Count(); i++)
    {
        data[i, 0] = voltage[i];
        data[i, 1] = current[i];
    }

答案 1 :(得分:0)

它必须是一个真正的数组吗? .Union()可以给你一个列表。如果你真的想要,你可以用.Union.ToArray()将它们投射到数组中。

答案 2 :(得分:0)

List基本上是数组,你可以通过index []访问它,所以为什么不使用Lest。你也可以省去自己铸造它的麻烦。

答案 3 :(得分:0)

要修复foreach循环,只需添加索引器

        foreach(double data in ztr.GetCurveDataForTestType())
        {
        richTextBox1.AppendText("Voltage" + data[0] + "    ---------    ");
        richTextBox1.AppendText("Current" + data[1] + "\r\n");
        }