zoukankan      html  css  js  c++  java
  • c# 缓存!

    做项目的时候获取所有城市的时候,发现每次去获取都花费了很多时间,所以用缓存方法让效率更高!

    这是我做的例子,如下:

    public class CacheGetCity

    {

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

    /// <summary>
    /// 最后访问时间
    /// </summary>
    private static DateTime lastTime;

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

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

    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 + "/";
    }

    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;
    }

    }

  • 相关阅读:
    postman批量运行和参数化
    Loadrunner 参数化数据分配方法以及数据更新方式
    常用函数
    获取 layer.msg 弹窗的信息
    登录页脚本小结
    关于linux下system()函数的总结
    请不要重复犯我在学习Python和Linux系统上的错误
    教你摸清 Linux PC 的性能底细?
    Ubuntu GNOME 16.10 Beta 1问世了!
    Google疯了,竟然这样!
  • 原文地址:https://www.cnblogs.com/skyfreedom/p/5315328.html
Copyright © 2011-2022 走看看