c# 緩存!

作項目的時候獲取全部城市的時候,發現每次去獲取都花費了不少時間,因此用緩存方法讓效率更高!緩存

這是我作的例子,以下:編碼

 

public class CacheGetCitycode

{ci

/// <summary>
/// 城市集合
/// </summary>
private static List<MCityInfo> allCityList;string

/// <summary>
/// 最後訪問時間
/// </summary>
private static DateTime lastTime;it

/// <summary>
/// 獲取全量城市對
/// </summary>
/// <returns>城市對</returns>
public static List<MCityInfo> GetInterCityList()
{
if (allCityList == null || allCityList.Count <= 0)
{
allCityList = GetAllCityInfo();
lastTime = DateTime.Now;
}ast

if (lastTime.AddHours(1) < DateTime.Now)////緩存一小時
{
allCityList = GetAllCityInfo();
lastTime = DateTime.Now;
}class

return allCityList;
}效率

/// <summary>
/// 根據Code獲取城市對
/// </summary>
/// <param name="code">城市編碼</param>
/// <returns>城市對</returns>
public static string GetCityNameByCode(string code)
{
string cityName = string.Empty;
GetInterCityList();
List<MCityInfo> list = allCityList.FindAll(arg => arg.AirportCode == code);
foreach (var city in list)
{
cityName += city.CityName + "/";
}foreach

cityName = cityName.TrimEnd('/');

return cityName;
}

/// <summary>
/// 根據城市名稱獲取三字碼
/// </summary>
/// <param name="name">城市名稱</param>
/// <returns>城市三字碼</returns>
public static string GetCityCodeByName(string name)
{
string cityCode = string.Empty;
GetInterCityList();
List<MCityInfo> list = allCityList.FindAll(arg => arg.CityName == name);
foreach (var city in list)
{
cityCode += city.AirportCode + ",";
}

cityCode = cityCode.TrimEnd(',');
return cityCode;
}

/// <summary>
/// 獲取城市信息全量
/// </summary>
/// <returns>城市信息</returns>
private static List<MCityInfo> GetAllCityInfo()
{
string notifyInfo = WcfCallHelper.Instance.Invoke<IFlightChangeDataService, string>("GetCitInfos");
List<MCityInfo> cityList = JsonConvert.DeserializeObject<List<MCityInfo>>(notifyInfo);
return cityList;
}

}

相關文章
相關標籤/搜索