如何在C#中将ArrayList转换为字符串

5
ArrayList arr = new ArrayList();
string abc =

我该怎么做才能将ArrayList转换为字符串,例如abc = arr;

更新的问题我可以完成我的工作的另一个考虑是字符串的连接(在这方面需要帮助)。 假设我有一个字符串s =“abcdefghi..”,通过对其应用foreach循环并通过匹配一些条件获取char并将每个char值连接到字符串类型的某个实例变量中,即string subString = +;像这样的东西
string tem = string.Empty; string temp = string.Empty; temp = string.Concat(tem,temp);

1
你想让字符串包含什么?是ArrayList中每个元素的字符串表示形式吗? - Daniel Hilgarth
我从某个循环中提供了char类型的值给我的ArrayList。现在我想将该ArrayList集合分配给字符串abc。 - RollerCosta
@Gimmebrkk 虽然这本应该是一个单独的问题,但我已经更新了我的答案。 - Adam Houldsworth
有人明白 OP 想要什么吗? - Daniel Mošmondor
@DanielMošmondor 能够将 ArrayList 中的 char 连接成单个字符串,并且有一种方法可以连接一系列字符串。 - Adam Houldsworth
3个回答

9

使用一些Linq,并假设您的ArrayList包含string类型:

using System.Linq;

var strings = new ArrayList().Cast<string>().ToArray();

var theString = string.Join(" ", strings);

更多阅读:

http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

将其他类型转换为字符串:

var strings = from object o in myArrayList
              select o.ToString();

var theString = string.Join(" ", strings.ToArray());
< p > Join 方法的第一个参数是分隔符,我选择了空格。看起来你的字符应该不需要分隔符,所以使用 ""string.Empty 替代。

更新:如果你想连接少量的字符串,+= 运算符就足够了。

var myString = "a";
myString += "b"; // Will equal "ab";

然而,如果您计划在紧密的循环中连接不确定数量的字符串,请使用 StringBuilder

using System.Text;

var sb = new StringBuilder();

for (int i = 0; i < 10; i++)
{
    sb.Append("a");
}

var myString = sb.ToString();

这样做避免了大量字符串创建的成本,因为字符串是不可变的。

阅读更新的问题。这里我想连接两个字符串。 - RollerCosta
@Gimmebrkk,请看我的更新答案,我演示了如何连接字符串。 - Adam Houldsworth

2

看一下string.Join(),它是string.Split()的相反操作。

你还需要将你的arr转换为string[],我想ToArray()会帮助你做到这一点。


阅读更新后的问题。在这里,我想要连接两个字符串。 - RollerCosta

0

出于个人喜好和为了记忆保留,我会使用连接运算符:

        System.Collections.ArrayList Collect = new System.Collections.ArrayList();
        string temporary = string.Empty;
        Collect.Add("Entry1");
        Collect.Add("Entry2");
        Collect.Add("Entry3");

        foreach (String var in Collect)
        {
            temporary = temporary + var.ToString();  
        }
        textBox1.Text = temporary;

你不想像这样连接字符串,因为它需要在每次迭代中重新分配临时内存。使用 StringBuilder 代替。 - EricLaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接