using Apewer.Internals; using System; using System.Collections.Generic; using System.Text; namespace Apewer.Internals { /// 文本对。 internal struct TextPair { private string _key; private string _value; public string Key { get { return _key ?? ""; } set { _key = value ?? ""; } } public string Value { get { return _value ?? ""; } set { _value = value ?? ""; } } public bool NotEmpty { get { return !string.IsNullOrEmpty(_key) && !string.IsNullOrEmpty(_value); } } public bool EmptyBoth { get { return string.IsNullOrEmpty(_key) && string.IsNullOrEmpty(_value); } } public bool EmptyKey { get { return string.IsNullOrEmpty(_key); } } public bool EmptyValue { get { return string.IsNullOrEmpty(_value); } } public TextPair(string argKey) { _key = argKey ?? ""; _value = ""; } public TextPair(string argKey, string argValue) { _key = argKey ?? ""; _value = argValue ?? ""; } public override int GetHashCode() { var merge = TextGenerator.Merge(_key, " : ", _value); var hashcode = merge.GetHashCode(); return hashcode; } public override bool Equals(object obj) { if (obj == null) return false; return (_key == ((TextPair)obj)._key) && (_value == ((TextPair)obj)._value); } public static bool operator ==(TextPair a, TextPair b) { return (a._key == b._key) && (a._value == b._value); } public static bool operator !=(TextPair a, TextPair b) { return (a._key != b._key) || (a._value != b._value); } } }