gpt4 book ai didi

c# - 有没有比使用 StringCollection 更好的方法在应用程序配置文件中存储字符串列表?

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:45 24 4
gpt4 key购买 nike

我有一个文件名列表,我需要将其存储在我的应用程序配置文件中。

在设置页面的初始组合框中出现的唯一集合是 System.Collections.Specialized.StringCollection 。现在最初我没有查询它,因为我直接将它转换为 List<string>。有一段代码我不满意,就是在配置对话框中将此列表复制到 ListBox 或从中复制:

public List<string> ImageNames
{
get
{
return folderImages.Items.ToList();
}
set
{
folderImages.Items.AddRange(value.ToArray());
}
}

但是,我一直在重新审视我的代码,并认为如果我将列表保留为 StringCollection,我可以改进这段代码。我在其他任何地方都使用了列表/集合,但我仍然不喜欢这种转换:

public StringCollection ImageNames
{
get
{
var names = new StringCollection();
names.AddRange(folderImages.Items.ToList().ToArray());
return names;
}
set
{
value.ToList().ForEach(imageName => folderImages.Items.Add(imageName));
}
}

实际上,现在我并排看到代码(可以说是)我认为 List<string> 版本“更干净”- 它肯定更清晰。

那么我可以在设置文件中存储其他集合或列表类型吗?如果可能的话,我真的很想避免在读取和写入设置文件时进行转换。

做不到这一点 - 是否有更简洁的方法在 StringCollectionListBox.ObjectCollection(ListBox.Items)之间进行转换?

最佳答案

您可以将 System.Object 存储到应用程序的设置中,它不在初始组合框中,但它就在那里,然后您可以直接将数据存储到对象中或从对象中存储数据。

关于c# - 有没有比使用 StringCollection 更好的方法在应用程序配置文件中存储字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com