读取速度

parent eabaaaf8
...@@ -18,9 +18,10 @@ public static partial class UtilExtensions ...@@ -18,9 +18,10 @@ public static partial class UtilExtensions
/// <returns></returns> /// <returns></returns>
public static T GetValue<T>(this Dictionary<string, object> keyValues, string key, T defaultValue = default(T)) public static T GetValue<T>(this Dictionary<string, object> keyValues, string key, T defaultValue = default(T))
{ {
var pair = keyValues.FirstOrDefault(w => w.Key.Equals(key, StringComparison.OrdinalIgnoreCase)); if (keyValues.TryGetValue(key, out object value))
if (!default(KeyValuePair<string, object>).Equals(pair)) return ConvertHelper.To<T>(value, defaultValue);
return ConvertHelper.To<T>(pair.Value, defaultValue); else if (keyValues.TryGetValue(key.ToLower(), out value))
return ConvertHelper.To<T>(value, defaultValue);
return defaultValue; return defaultValue;
} }
...@@ -33,9 +34,10 @@ public static T GetValue<T>(this Dictionary<string, object> keyValues, string ke ...@@ -33,9 +34,10 @@ public static T GetValue<T>(this Dictionary<string, object> keyValues, string ke
/// <returns></returns> /// <returns></returns>
public static T GetValue<T>(this SortedDictionary<string, object> keyValues, string key, T defaultValue = default(T)) public static T GetValue<T>(this SortedDictionary<string, object> keyValues, string key, T defaultValue = default(T))
{ {
var pair = keyValues.FirstOrDefault(w => w.Key.Equals(key, StringComparison.OrdinalIgnoreCase)); if (keyValues.TryGetValue(key, out object value))
if (!default(KeyValuePair<string, object>).Equals(pair)) return ConvertHelper.To<T>(value, defaultValue);
return ConvertHelper.To<T>(pair.Value, defaultValue); else if (keyValues.TryGetValue(key.ToLower(), out value))
return ConvertHelper.To<T>(value, defaultValue);
return defaultValue; return defaultValue;
} }
...@@ -56,6 +58,38 @@ public static void AddOrUpdate(this Dictionary<string, object> keyValues, string ...@@ -56,6 +58,38 @@ public static void AddOrUpdate(this Dictionary<string, object> keyValues, string
} }
/// <summary> /// <summary>
/// 为了快速读取,忽略大小写,默认:0
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="keyValues"></param>
/// <param name="key"></param>
/// <returns></returns>
public static decimal GetDecimal(this Dictionary<string, object> keyValues, string key)
{
if (keyValues.TryGetValue(key, out object value))
return value == null ? 0m : decimal.Parse(value.ToString());
else if (keyValues.TryGetValue(key.ToLower(), out value))
return value == null ? 0m : decimal.Parse(value.ToString());
return 0m;
}
/// <summary>
/// 为了快速读取,忽略大小写,默认:空值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="keyValues"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string GetString(this Dictionary<string, object> keyValues, string key)
{
if (keyValues.TryGetValue(key, out object value))
return value?.ToString() ?? "";
else if (keyValues.TryGetValue(key.ToLower(), out value))
return value?.ToString() ?? "";
return "";
}
/// <summary>
/// form 转换 键值对 /// form 转换 键值对
/// </summary> /// </summary>
/// <param name="pairs"></param> /// <param name="pairs"></param>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment