是否有 C# 函数将所有堆栈元素作为连接字符串获取

Is there a C# function to get all stack elements as a joined string

我有一个正在处理的 Stack<string>,但有时我无法处理所有元素,因此想 join/concatenate 将剩余的堆栈元素合并为一个字符串。是否存在现有函数,或者我是否需要在循环中弹出所有元素并将它们附加到字符串变量?

尝试使用 String.Join 函数将几个对象连接成一个字符串。

您尚未发布堆栈实现的任何代码示例,但 Stack<T> 有一个 ToArray() 方法,该方法将 return 一个 T[] 反过来您可以通过到 String.Join() 以获得连接的字符串元素。

由于 System.Collections.StackICollection,您可以使用所有您想要的 Linq 方法,例如 .ToList().ToArray()

之后,string.Join() 连接它们。

正如其他发帖人提到的那样,解决方案是使用 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