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

    }

  • 相关阅读:
    Redis哨兵模式 (sentinel) (主从复制,读写分离)
    字符串的全排列
    测试链接
    vue数组能触发视图更新的方法
    PyCharm Shortcuts of macOS
    Tweak SecureCRT for macOS
    rsyslogd 以及日志轮替 logrotate
    阿里云服务器常见操作
    sh 启动jar
    招募军队(最小生成树)
  • 原文地址:https://www.cnblogs.com/skyfreedom/p/5315328.html
Copyright © 2020-2023  润新知