我正在寻找在C#中创建一个字典并将其用于查找值的查找。 问题是,我希望这本字典能够坚持超越代码,也就是说,即使程序关闭时,我也希望字典不会消失。 在传统的编程中,这是不可能的,所以你有什么现成的想法吗?C#中的词典#
事实上,字典将持有10,000个密钥,如果我必须每次重新创建它,则需要很多时间,因为该设备具有接近200 mb的RAM。
那么你有什么想法吗?
我正在寻找在C#中创建一个字典并将其用于查找值的查找。 问题是,我希望这本字典能够坚持超越代码,也就是说,即使程序关闭时,我也希望字典不会消失。 在传统的编程中,这是不可能的,所以你有什么现成的想法吗?C#中的词典#
事实上,字典将持有10,000个密钥,如果我必须每次重新创建它,则需要很多时间,因为该设备具有接近200 mb的RAM。
那么你有什么想法吗?
源代码:http://persistentdictionary.codeplex.com/SourceControl/latest#TestPersistentMap/CPersistentDictionary/CPersistentDictionary.cs – modiX
这里有一种方法可以做到,只需将WriteObject中的流设置为文件即可。你可以在这里看到例子http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx;此外,这是开箱即用,因为我怀疑你可以得到。 :
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Dictionary<String, Person> Dict = new Dictionary<string, Person>();
Dict.Add("p1", new Person() { Name = "Chicken Monkey", Age = 9000 });
DataContractSerializer seralizer = new DataContractSerializer(Dict.GetType());
seralizer.WriteObject(Console.OpenStandardOutput(),Dict);
Console.ReadLine();
}
}
[DataContract]
class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
}
应用程序启动时的持久存储+缓存策略? – ken2k
http://stackoverflow.com/questions/100235/looking-for-a-simple-standalone-persistent-dictionary-implementation-in-c-sharp – Jonny
序列化它肯定?文件IO不是传统的编程!或者databse,或者azure blob或其他,很多方法。 –