public Tuple <string, string> ToString(PatternFormat format) { switch (format) { case PatternFormat.PatternAndMask: return(HasWildcard ? Tuple.Create("\\x00", "?") : Tuple.Create($"\\x{ToByte():X02}", "x")); case PatternFormat.Combined: var sb = new StringBuilder(); if (nibble1.IsWildcard) { sb.Append('?'); } else { sb.AppendFormat("{0:X}", nibble1.Value); } if (nibble2.IsWildcard) { sb.Append('?'); } else { sb.AppendFormat("{0:X}", nibble2.Value); } return(Tuple.Create(sb.ToString(), (string)null)); default: throw new ArgumentOutOfRangeException(nameof(format), format, null); } }
public Tuple <string, string> ToString(PatternFormat format) { switch (format) { case PatternFormat.PatternAndMask: return(Tuple.Create($"\\x{ToByte():X02}", "x")); case PatternFormat.Combined: return(Tuple.Create($"{ToByte():X02}", (string)null)); default: throw new ArgumentOutOfRangeException(nameof(format), format, null); } }
/// <summary> /// Formats the <see cref="BytePattern"/> in the specified <see cref="PatternFormat"/>. /// </summary> /// <param name="format">The format of the pattern.</param> /// <returns>A tuple containing the format. If <paramref name="format"/> is not <see cref="PatternFormat.PatternAndMask"/> the second item is null.</returns> public Tuple <string, string> ToString(PatternFormat format) { switch (format) { case PatternFormat.PatternAndMask: var sb1 = new StringBuilder(); var sb2 = new StringBuilder(); pattern .Select(p => p.ToString(PatternFormat.PatternAndMask)) .ForEach(t => { sb1.Append(t.Item1); sb2.Append(t.Item2); }); return(Tuple.Create(sb1.ToString(), sb2.ToString())); case PatternFormat.Combined: return(Tuple.Create <string, string>(string.Join(" ", pattern.Select(p => p.ToString(PatternFormat.Combined).Item1)), null)); default: throw new ArgumentOutOfRangeException(nameof(format), format, null); } }