我如何在c#中转换一个列表到字符串?
当我在List对象上执行toString时,我得到:
System.Collections.Generic.List`1[System.String]
我如何在c#中转换一个列表到字符串?
当我在List对象上执行toString时,我得到:
System.Collections.Generic.List`1[System.String]
当前回答
如果你想把一个列表中的项目变成一个大的长字符串,可以这样做:字符串。myList加入(" ")。一些旧版本的框架不允许你传递IEnumerable作为第二个参数,所以你可能需要通过调用. toarray()将列表转换为数组。
其他回答
你可以用绳子。加入:
List<string> list = new List<string>()
{
"Red",
"Blue",
"Green"
};
string output = string.Join(Environment.NewLine, list.ToArray());
Console.Write(output);
结果将是:
Red
Blue
Green
作为环境的替代方案。NewLine,您可以用您选择的基于字符串的行分隔符替换它。
我将跟随我的直觉,并假设您想要连接在列表的每个元素上调用ToString的结果。
var result = string.Join(",", list.ToArray());
这似乎对我有用。
var combindedString = new string(list.ToArray());
引用类型的. tostring()方法通常解析回System.Object.ToString(),除非在派生类型中重写它(可能为内置类型使用扩展方法)。此方法的默认行为是输出调用它的类型的名称。所以你看到的是预期行为。
你可以试试绳子之类的东西。Join(", ", myList.ToArray());为了达到这个目的。这是一个额外的步骤,但它可以放在System.Collections.Generic的扩展方法中。List<T>让它更简单。就像这样:
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(", ", list);
}
}
(请注意,这是未经测试的免费代码。目前我手头没有编译器。所以你会想要尝试一下。)
你有一个List<string> -如果你想把它们连接起来,就像这样
string s = string.Join("", list);
可以工作(至少在。net 4.0中)。第一个参数是分隔符。你也可以用逗号分隔等等。
您可能还希望使用StringBuilder来运行连接,而不是形成一个列表。