嘿,我正在研究一个软件解决方案,我在我的程序中有一个列表视图,我想保存它。
var listview = new List<string>();
foreach (ListViewItem Item in listView1.Items)
{
listview.Add(Item.Text.ToString());
}
StringCollection collection = new StringCollection();
Properties.Settings.Default.ListViewItems = collection;
Properties.Settings.Default.Save();我试着用设置保存它,但是当我试图调用它时,值是空的。

但是,当我试图装载我的桌子时,我不能这样做。当我打电话给我的桌子时,它不是这样工作的。
var collection = Properties.Settings.Default.ListViewItems;
if (collection != null)
{
List<string> list = collection.Cast<string>().ToList();
foreach (var item in list)
{
listView1.Items.Add(item);
}
}
else
{
MessageBox.Show("null");
}发布于 2021-03-23 07:38:11
因此,您在listView1.Items中有项,并且希望将它们保存到WinForms Settings系统中。
照这样做:
var settings = Properties.Settings.Default;
if( settings.ListViewItems is null ) settings.ListViewItems = new StringCollection();
foreach( ListViewItem lvi in listView1.Items )
{
settings.ListViewItems.Add( lvi.Text );
}
settings.Save();令人烦恼的是,StringCollection类型有一个名为AddRange的方法,但它只接受String[]而不是IEnumerable<String>,而.NET没有为非泛型IList提供股票AddRange方法。因此,我建议您避免使用Settings系统,因为它是弱类型的,不适合现代C#生态系统,比如对Linq的支持。
https://stackoverflow.com/questions/66758940
复制相似问题