与Array.toString()
如果我有一个数组并执行ToString那么只是将数组值串在一个长逗号分隔的字符串中,或者在数组中是不可能的?
选项1
如果你有一个string
数组s,那么你可以使用String.Join
:
string[] values = ...; string concatenated = string.Join(",", values);
选项2
如果您正在处理任何其他类型的数组并且您使用的是.NET 3.5或更高版本,则可以使用LINQ:
string concatenated = string.Join(",", values.Select(x => x.ToString()).ToArray());
你当然可以这样做,但这不是默认行为。 最简单的方法(无论如何从.NET 3.5)可能是:
string joined = string.Join(",", array.Select(x => x.ToString()).ToArray());
MoreLINQ有一个内置的方法来做到这一点:
string joined = array.ToDelimitedString();
或明确指定分隔:
string joined = array.ToDelimitedString(",");
它没有(正如你所注意到的)。
对于字符串数组,您可以使用:
string.Join(",", myArray)
对于其他arrays,我认为你需要自己编写代码。
要实现此效果,您应该调用String.Join(string,string [])
即
string[] stringArray = new string[] { "a", "b", "c" }; string.Join(",", stringArray);
不,数组的ToString将为您提供对象的Type name字符串。 请改用String.Join方法。
您可以使用string.Concat(Object[] args)
。 这将调用args
中每个对象的ToString()
方法。 在自定义类中,您可以覆盖ToString()
方法以实现自定义字符串转换,如下所示:
public class YourClass { private int number; public YourClass(int num) { number = num; } public override string ToString() { return "#" + number; } }
现在,您可以连接自定义类的实例数组:
YourClass[] yourArray = { new YourClass(1), new YourClass(2), new YourClass(3) }; string concatenated = string.Concat(yourArray);
不幸的是,这种方法没有添加任何分隔符,但我发现它很优雅。 concatenated
的变量将包含"#1#2#2"
。
上述就是C#学习教程:与Array.toString()分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/956347.html