在csv文本文件中添加2个comboBox
本文关键字:添加 2个 comboBox 文件 csv 文本 | 更新日期: 2023-09-27 18:11:24
我接近这个,但它仍然失败。只是多次添加combobox1项然后更改。为cbo1的每个条目正确添加了Combobox2。还在MyFile.txt的行前添加分隔符我加载这个分裂没有问题,回去是麻烦我就像新的真正的新的c#。
StreamWriter OutFile = new StreamWriter("MyFile.txt",false);
foreach(object L in comboBox1.Items)
foreach(object M in comboBox2.Items)
{
string lineoftext1 = (L.ToString());
string lineoftext2 = (",");
string lineoftext3 = (M.ToString());
string joinedText;
joinedText = String.Join(lineoftext1, lineoftext2, lineoftext3);
//MessageBox.Show(joinedText);
OutFile.WriteLine(joinedText);
}
OutFile.Close();
哎呀,我看到问题了,这是你处理字符串的方式,你不使用字符串。以这种方式连接,您可以像这样显式地连接它们:
joinedText = lineoftext1 + lineoftext2 + lineoftext3;
或者你需要创建一些join方法可以接受的东西,我会使用一个列表,所以foreach循环的内部看起来像这样
List<string> mystrings = new List<string>();
mystrings.add(L.ToString());
mystrings.add(M.ToString());
joinedText = String.Join(",", mystrings);
也可以保持原样,但是改变
周围的一些值joinedText = String.Join(lineoftext2, lineoftext1, lineoftext3);
传递给String的第一个参数。Join是分隔符。你在传递文本。
如果这没有帮助,那么我希望看到你的预期输出,正如我在上面的评论中提到的。
编辑:如果你想要一个1-2-3 -2的风格,试试这个
int i = 0;
foreach (object M in comboBox1.Items)
{
List<string> mystrings = new List<string>();
mystrings.Add(comboBox2.Items[i].ToString());
mystrings.Add(M.ToString());
OutFile.WriteLine(String.Join(",", mystrings));
i++;
}
请注意,如果每个组合框中有不同数量的项目,则会出现错误。(你会得到一个外部数组边界错误)
我不确定,我认为在你的combobox1中,相同的项目被添加当post back完成时,所以它重复回到combobox1,即使在combobox2中发生任何变化。如果这是你的问题,你可以通过在里面添加代码来解决这个问题,if (!IsPostBack)
,像这样,
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//write you code here
}
}
Nikerym你明白了,我只是在下面添加了combobox1原文是129行由于M8
StreamWriter OutFile = new StreamWriter("MyFile.txt", false);
int i = 0;
foreach (object M in comboBox1.Items)
{
List<string> mystrings = new List<string>();
mystrings.Add(comboBox1.Items[i].ToString());
mystrings.Add(comboBox2.Items[i].ToString());
OutFile.WriteLine(String.Join(",", mystrings));
i++;
}
OutFile.Close();