如何在 C# 中将集合写入文件
本文关键字:集合 文件 | 更新日期: 2023-09-27 18:30:40
我目前有一个winForms程序,我对编程相当陌生。现在我有一个项目类
public class Item
{
public string @Url { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public int Index { get; set; }
public Item(string @url, string name, double price)
{
this.Url = url;
this.Name = name;
this.Price = price;
}
public override string ToString()
{
return this.Name;
}
}
并在整个程序中存储在字典中
Dictionary<int, Item>
如何创建新的文件类型 (.buf) 并使其保存字典以便可以打开?
如果你想把字典序列化为一个文件,我建议你参考这里,这里和这里。
更新
请务必查看所有链接,因为有多种方法可以执行此操作,但这是一种方法 - 通过遵循此信息并添加
public Item() { }
然后,我可以使用 XamlServices 执行以下操作(您需要在项目中添加对 System.Xaml 的引用):
class Program
{
static void Main()
{
Item newItem = new Item( "http://foo", "test1", 1.0 );
var values = new Dictionary<int,Item>();
values.Add(1,newItem);
using( StreamWriter writer = File.CreateText( "serialized.buf" ) )
{
XamlServices.Save( writer, values );
}
using( StreamReader tr = new StreamReader( "serialized.buf" ) )
{
Dictionary<int, Item> result = (Dictionary<int, Item>)XamlServices.Load( tr );
//do something with dictionary here
Item retrievedItem = result[1];
}
}
}
有关数据库的信息,请参阅此处和此处。如果你想开始使用数据库和WinForms,我建议这样做。
要决定平面文件和数据库,请参阅此处和此处的答案。很抱歉所有链接,但信息就在那里(我知道当你开始时很难找到正确的搜索词)。根据我自己的经验,您是否使用数据库取决于: -
- 要执行的操作(查询、创建、删除、更新、删除)的复杂性。
- 要存储的数据的结构。
- 应用程序将运行的位置。例如,如果它将是路由器上的嵌入式应用程序(我认为您的winforms应用程序不会),那么文件可能是您唯一的选择。
- 与上一点类似,您希望应用程序具有多轻量级和自包含性。
- 要存储的数据量。
using (var file = File.OpenWrite("myfile.buf"))
foreach (var item in dictionary)
file.WriteLine("[{0} {1}]", item.Key, item.Value);