Сохранить данные из ListBox

Нужно сохранить данные из ListBox'a. При запуске программы и нажатии на кнопку "Сохранить" выдается ошибка :"Заданное приведение является недопустимым" и указывается на эту строчку : int n = (int) listBox1.Items[i]; Как исправить эту ошибку? Описание кнопки "Сохранить" :
Описание задачи
private void button5_Click(object sender, EventArgs e)
        {
            saveFileDialog1.FileName = "";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                using (StreamWriter sw = new StreamWriter(saveFileDialog1.FileName))
                {
                    for (int i = 0; i < listBox1.Items.Count; i++)
                    {
                        int n =  (int) listBox1.Items[i];
                        sw.WriteLine(n);
                    }
                }
            }
        }
8 ответов

int n = (int) listBox1.Items[i]; !!!!!!!Это означает то, что у тебя в Items-ах хранятся не числа!


эту строчку можно написать так
string n = listBox1.Items[i];
или так:
int n=Convert.ToInt32(listBox1.Items[i]);//если все числа


попробуй проще, зачем тебе сайф фаил диалог.
string listcoll="";
for(int i=0; i<listbox1.items.count; i++)
{
    listcoll=listcoll+listbox1.items[i].Tostring()+"*";
}
 System.IO.File.WriteAllText("listcoll.txt", listcoll, Encoding.Default);
а для загрузки
System.IO.StreamReader nmkr = new StreamReader("listcoll.txt", Encoding.Default);
string[] nmk = nmkr.*********().Split(new string[]{"*"},StringSplitOptions.******************);
for(int i=0;i<nmk.lengt;i++)
{
   listBox1.Items.Add(nmk[i]);
}
 nmkr.Close();
если тебе не обязательно диалог использовать


эту строчку можно написать так
string n = listBox1.Items[i];
выдало ошибку: Не удается неявно преобразовать тип "object" в "string". Существует явное преобразование (возможно, пропущено приведение типов).to Dimat я б с удовольствием, но нужно использовать именно SaveDialog


попробуй так
string n = listBox1.Items[i.ToString()];


тогда так
string n = listBox1.Items[i].ToString();


тогда так
string n = listBox1.Items[i].ToString();
Это помогло, спасибо.


Object n = listBox1.Items[i];
Фиг знает что у него там хранится