作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个整数数组:
int[] number = new int[] { 2,3,6,7 };
将这些数字转换为由字符分隔的单个字符串(如:"2,3,6,7"
)的最简单方法是什么?
我正在使用 C# 和 .NET 3.5。
最佳答案
var ints = new int[] {1, 2, 3, 4, 5};
var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());
Console.WriteLine(result); // prints "1,2,3,4,5"
从(至少).NET 4.5 开始,
var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());
相当于:
var result = string.Join(",", ints);
我看到几个解决方案宣传 StringBuilder 的用法。有人提示 Join 方法应该采用 IEnumerable 参数。
我要让你失望了:) String.Join 需要一个数组的原因只有一个——性能。 Join 方法需要知道数据的大小才能有效地预分配必要的内存量。
下面是String.Join方法内部实现的一部分:
// length computed from length of items in input array and length of separator
string str = FastAllocateString(length);
fixed (char* chRef = &str.m_firstChar) // note than we use direct memory access here
{
UnSafeCharBuffer buffer = new UnSafeCharBuffer(chRef, length);
buffer.AppendString(value[startIndex]);
for (int j = startIndex + 1; j <= num2; j++)
{
buffer.AppendString(separator);
buffer.AppendString(value[j]);
}
}
关于c# - 如何将 int[] 连接到 .NET 中的字符分隔字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/145856/
我是一名优秀的程序员,十分优秀!