Beispiel #1
0
        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());
        }
Beispiel #2
0
        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());
        }