Есть ли функция C#, чтобы получить все элементы стека в виде объединенной строки - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть Stack<string>, который я обрабатываю, но иногда я не могу обработать все элементы и хотел бы объединить / объединить оставшиеся элементы стека в одну строку. Существует ли уже существующая функция, или мне нужно добавить все элементы в al oop и добавить их в строковую переменную?

Ответы [ 4 ]

2 голосов
/ 29 апреля 2020

Попробуйте использовать функцию String.Join , чтобы объединить несколько объектов в одну строку.

1 голос
/ 29 апреля 2020

Вы не опубликовали ни одного примера кода вашей реализации стека, но Stack<T> имеет метод ToArray(), который будет возвращать T[], который, в свою очередь, вы можете перейти к String.Join(), чтобы получить объединенный строковый элемент.

0 голосов
/ 29 апреля 2020

Как упоминалось в других постерах, решение состоит в том, чтобы использовать String.Joint()

По крайней мере для Stack<string> кажется, что нет необходимости преобразовывать его .ToArray() или в .ToList()

var stack = new Stack<string>();

stack.Push("first element");
stack.Push("abc");
stack.Push("xyz");
stack.Push("last element");

string joinedString = String.Join(",", stack);

Console.WriteLine(joinedString); 
// will print: last element,xyz,abc,first element
0 голосов
/ 29 апреля 2020

Поскольку System.Collections.Stack равно ICollection, вы можете использовать все необходимые вам методы Linq, например .ToList() или .ToArray().

После этого string.Join() объединить их.

...