我正在尋找在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或其他,很多方法。 –