Files
GateDge2023_ljy/00.SDK/E_ZKEccTopSdk/TopDictionary.cs
PastSaid 16fbd10312 1
2024-04-29 17:57:07 +08:00

87 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace E_ZKEccTopSdk
{
/// <summary>
/// 符合TOP习惯的纯字符串字典结构。
/// </summary>
public class TopDictionary : Dictionary<string, string>
{
public TopDictionary() { }
public TopDictionary(IDictionary<string, string> dictionary)
: base(dictionary)
{ }
/// <summary>
/// 添加一个新的键值对。空键或者空值的键值对将会被忽略。
/// </summary>
/// <param name="key">键名称</param>
/// <param name="value">键对应的值目前支持string, int, long, double, bool, DateTime类型</param>
public void Add(string key, object value)
{
string strValue;
if (value == null)
{
strValue = null;
}
else if (value is string)
{
strValue = (string)value;
}
else if (value is Nullable<DateTime>)
{
Nullable<DateTime> dateTime = value as Nullable<DateTime>;
strValue = dateTime.Value.ToString(Constants.DATE_TIME_FORMAT);
}
else if (value is Nullable<int>)
{
strValue = (value as Nullable<int>).Value.ToString();
}
else if (value is Nullable<long>)
{
strValue = (value as Nullable<long>).Value.ToString();
}
else if (value is Nullable<double>)
{
strValue = (value as Nullable<double>).Value.ToString();
}
else if (value is Nullable<bool>)
{
strValue = (value as Nullable<bool>).Value.ToString().ToLower();
}
else
{
strValue = value.ToString();
}
this.Add(key, strValue);
}
public new void Add(string key, string value)
{
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
{
base[key] = value;
}
}
public void AddAll(IDictionary<string, string> dict)
{
if (dict != null && dict.Count > 0)
{
IEnumerator<KeyValuePair<string, string>> kvps = dict.GetEnumerator();
while (kvps.MoveNext())
{
KeyValuePair<string, string> kvp = kvps.Current;
Add(kvp.Key, kvp.Value);
}
}
}
}
}