private string FormatPositional(List <object> values) { var format = new StringBuilder(_messageFormat.Length + 128); foreach (var token in _token) { var text = token switch { MessageTextToken textToken => textToken.Text, MessageHoleToken holeToken => FormatHole(holeToken, holeToken.Index.Filter(x => values.Count > x).Match(x => values[x], () => "?")), _ => throw new NotImplementedException(), }; format.Append(text); } return(format.ToString()); }
private string FormatNamed(IEnumerable <object> values) { var format = new StringBuilder(_messageFormat.Length + 128); IEnumerator <object> valuesEnumerator = values.GetEnumerator(); foreach (var token in _token) { var text = token switch { MessageTextToken textToken => textToken.Text, MessageHoleToken holeToken => FormatHole(holeToken, valuesEnumerator.MoveNext() ? valuesEnumerator.Current : "?"), _ => throw new NotImplementedException(), }; format.Append(text); } return(format.ToString()); }