3

我目前有一个 winForms 程序,而且我对编程还很陌生。现在我有一个 Item 类

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) 并使其保存字典以便可以打开它?

4

2 回答 2

2

如果您想将字典序列化为文件,建议您参考此处此处此处

更新

请务必查看所有链接,因为有不止一种方法可以做到这一点,但这是一种方法 - 通过遵循信息并添加公共构造函数

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 应用程序不会),那么文件可能是您唯一的选择。
  • 与前一点类似,您希望您的应用程序有多轻巧和独立。
  • 要存储的数据量。
于 2013-09-09T00:46:18.770 回答
-1
using (var file = File.OpenWrite("myfile.buf"))
foreach (var item in dictionary)
file.WriteLine("[{0} {1}]", item.Key, item.Value); 
于 2013-09-09T00:37:47.807 回答