You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.9 KiB

using Apewer.Internals;
using System;
using System.Collections.Generic;
using System.Text;
namespace Apewer.Internals
{
/// <summary>文本对。</summary>
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);
}
}
}