c#将点发送到文本框

时间:2016-01-23 18:45:48

标签: c# list textbox

我制作了两个包含用于在图表上绘制点的值的列表。其中一个包含int(值列表),另一个包含long(Times列表)。我想以这种格式(x,y)将它们放入文本框中,我不知道该怎么做。我尝试使用foreach和for循环,但到目前为止都没有工作。

private void pointsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        /*
        foreach (var pointsY in Times)
        {
            foreach(var pointsX in Values)
            {

            }
        } // end foreach 
        */
        for(int i = 0; i < Times.Count; i++)
        {
            for(int a = 0; a < Values.Count; i++)
            {
                // textBox1.Text += "(" + Values[a] + "," + (int) Times[i] + "), ";
            }
        }

    }

2 个答案:

答案 0 :(得分:0)

假设它们是匹配的集合,意味着每个集合具有相同数量的项目,您只应该像这样列出其中一个列表。

        for (int i = 0; i < Times.Count; i++)
        {
                 textBox1.Text += "(" + Values[i] + "," + Times[i] + "), ";
        }

答案 1 :(得分:0)

假设您有两个列表:

List<int> ValuesList = new List<int>() { 1, 5, 7, 9, 12, 15 };
List<long> TimesList = new List<long>() { 0001, 0002, 0003, 0004, 0005, 0006 };

然后......(假设每个列表中的项目数相同,请参阅下面的字典示例以了解另一种存储数据的方法),您可以使用简单的for运算符并将文本附加到文本框中:

for (int i = 0; i == ValuesList.Count; i++)
            {
                textBox.Text += string.Format("({0}, {1})", ValuesList[i], TimesList[i]);
            }

但是,(假设您的时间是独一无二的)最好一起使用不同的数据结构来存储值:

Dictionary<long, int> VTDictionary = new Dictionary<long, int>();

然后您可以像这样添加项目到字典:

VTDictionary.Add(0001, 1);
VTDictionary.Add(0002, 2);

这会将类似的类型保存在一起...而不是在单独的列表中,因此,您不必协调它们。

然后,要从字典中检索项目并将它们附加到文本框,您可以使用之前尝试过的foreach:

foreach (KeyValuePair<long, int> kvp in VTDictionary)
            {
                textBox.Text += string.Format("({0}, {1})", kvp.Value, kvp.Key); 
            }