這可能是一個noob問題,但我需要一些幫助。我用C#編寫了兩個簡單的方法:ReadCsv_IT和GetTranslation。 ReadCsv_IT方法從csv文件讀取。 GetTransaltion方法調用ReadCsv_IT方法並返回已翻譯的輸入(字符串鍵)。如何在C#中緩存讀取.csv文件
我的問題是,將來我將不得不請求很多次GetTranslation,但我顯然不想每次都讀取.csv文件。所以我正在考慮如何使用緩存內存來優化我的程序,這樣我就不必每次請求都讀取.csv文件。但我不知道該怎麼做,以及我能做些什麼來優化我的程序。任何人都可以幫忙嗎?
public string ReadCsv_IT(string key)
{
string newKey = "";
using (var streamReader = new StreamReader(@"MyResource.csv"))
{
CsvReader csv = new CsvReader(streamReader);
csv.Configuration.Delimiter = ";";
List<DataRecord> rec = csv.GetRecords<DataRecord>().ToList();
DataRecord record = rec.FirstOrDefault(a => a.ORIGTITLE == key);
if (record != null)
{
//DOES THE LOCALIZATION with the help of the .csv file.
}
}
return newKey;
}
這裏是getTranslation方法:
public string GetTranslation(string key, string culture = null)
{
string result = "";
if (culture == null)
{
culture = Thread.CurrentThread.CurrentCulture.Name;
}
if (culture == "it-IT")
{
result = ReadCsv_IT(key);
}
return result;
}
這裏也是類DataRecord。
class DataRecord
{
public string ORIGTITLE { get; set; }
public string REPLACETITLE { get; set; }
public string ORIGTOOLTIP { get; set; }
}
}
您能否詳細介紹一下?謝謝 – Devid