将arraylist转换为字符串

时间:2010-12-06 07:39:58

标签: c# asp.net

如何将arraylist转换为字符串?

4 个答案:

答案 0 :(得分:12)

ArrayList可以包含任何对象实例。因此将其转换为字符串并没有多大意义。如果你使用泛型List<string>会更有意义,因为在这种情况下你知道它是一个字符串集合。然后你可以通过一些分隔符连接这些字符串。例如:

var list = new List<string>(new[] { "value 1", "value 2", "value 3" });
string result = string.Join("|", list.ToArray());
// at this stage result will be equal to "value 1|value 2|value 3"

答案 1 :(得分:5)

ArrayList可能包含从Object派生的任何内容,因此我建议如下:

ArrayList sl = new ArrayList() {1, 23.33m, "hello", DateTime.Now};
var result = string.Join(",", sl.ToArray()
    .Select(o => o.ToString()).ToArray());

这将为您提供一个字符串,表示以逗号分隔的所有值

希望这就是你追求的目标

答案 2 :(得分:2)

这完全不是你的意思(加上,ArrayList现在使用率很低 - 相反看看泛型,即List<T>) - 但如果你只想要每个的连接输出对象:

    ArrayList arrayList = new ArrayList() { 1, "abc", 345.67M };
    StringBuilder sb = new StringBuilder();
    foreach (object obj in arrayList) sb.Append(obj);
    string s = sb.ToString();

(我故意不在中间添加任何东西,比如逗号,但你可以看到它是如何扩展的)

答案 3 :(得分:1)

很难准确猜出你想要在这里发生什么。如果您可以描述ArrayList中的对象类型,您想要用于从每个对象生成字符串的方法,以及您想对这些结果字符串做什么,那么您可以获得对您的问题的有意义的答案。

例如,如果您想获取列表中每个项目的默认字符串表示形式并连接成CSV,您可以这样: -

var text = string.Join(",", myArray.Select(x => x.ToString()).ToArray());