是否有 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.Stack
是 ICollection
,您可以使用所有您想要的 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
我有一个正在处理的 Stack<string>
,但有时我无法处理所有元素,因此想 join/concatenate 将剩余的堆栈元素合并为一个字符串。是否存在现有函数,或者我是否需要在循环中弹出所有元素并将它们附加到字符串变量?
尝试使用 String.Join 函数将几个对象连接成一个字符串。
您尚未发布堆栈实现的任何代码示例,但 Stack<T>
有一个 ToArray()
方法,该方法将 return 一个 T[]
反过来您可以通过到 String.Join()
以获得连接的字符串元素。
由于 System.Collections.Stack
是 ICollection
,您可以使用所有您想要的 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