我制作了两个包含用于在图表上绘制点的值的列表。其中一个包含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] + "), ";
}
}
}
答案 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);
}