我有一个整数数组:

int[] number = new int[] { 2,3,6,7 };

将这些数字转换为单个字符串(数字之间用一个字符分隔,如:"2,3,6,7")的最简单方法是什么?

我用的是C#and.净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"

从(至少).NET4.5开始,

var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());

相当于:

var result = string.Join(",", ints);

我看到有几种解决方案宣传StringBuilder的使用.有人抱怨Join方法应该采用IEnumerable参数.

我会让你失望的:)字符串.Join需要数组的唯一原因是性能.Join方法需要知道数据的大小,才能有效地预先分配必要的内存量.

下面是String的内部实现的一部分.连接方法:

// 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]);
    }
}

.net相关问答推荐

使用PowerShell在Windows容器内安装exe

将多行参数传递给Power Shell中的DotNet Pack命令

PowerShell 5.1和7在使用证书时的区别

为什么脚本不从 _Layout 加载并且必须添加到部分视图中?

Visual Studio 2022 中的目标操作系统和目标运行时有什么区别?

如何判断属性设置器是否公开

如何确定计时器是否正在运行?

.gitignore 和 Visual Studio 项目:忽略 bin/Debug 目录但不忽略 bin/Release 目录

JavaScript 中的IsNullOrWhitespace?

在 C# 中将字节数组保存为磁盘上的文件的最有效方法是什么?

在 C# DllImport 中使用 32 位或 64 位 dll

是否可以更改 Winforms 组合框以禁用输入?

在 C# 中与块等效?

关于 Enumerable.Range 与传统 for 循环的 foreach 的思考

什么是 ToString("N0") 格式?

如何将 XPath 与 XElement 或 LINQ 一起使用?

在 .NET 中,null 的哈希码是否应该始终为零

DLL 中有什么以及它是如何工作的?

为什么 Roslyn 中有异步状态机类(而不是 struct )?

IronPython 与 Python .NET