sharpDevelop中使用的string.join方法

mrs*_*ent 1 c# sharpdevelop

我正在尝试将double [,]转换为一个字符串[],如下面的代码所示

double[,] completeDataArray = new double[25,4000];
string[] tarray = new string[4000];

for(int i = 0;i<4000;i++)
{
    tarray[i]=string.Join(",",Convert.ToString(completeDataArray[24,i]));
}
Run Code Online (Sandbox Code Playgroud)

`

当我在视觉工作室中这样做时,一切都按预期工作.但是在sharpDevelop中,我得到了这两个错误

(1)'string.Join(string,string [])'的最佳重载方法匹配有一些无效参数和(2)参数2:无法从'string'转换为string []'

我能让它工作的唯一方法是使用另一个字符串数组.

double[,] completeDataArray = new double[25,4000];
string[] tarray = new string[4000];
string[] tempString = new string[4000];

for(int i=0;i<4000;i++)
    tempString[i]=convert.toString(completeDateArray[24,i]);

for(int i = 0;i<4000;i++)
    tarray[i]=string.Join(",",tempString);
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是我的内存不足,当我使用tempString时出现内存不足错误.

谁能告诉我我做错了什么?

Sam*_*ell 6

您的代码似乎使用了String.Join在.NET 4中添加的重载,并且可能不存在于您正在使用的.NET(Microsoft或Mono)的实现中.以下是String.Join随时间变化的摘要.

String.Join在.NET 4中添加了新的重载:

public static string Join(string separator, IEnumerable<string> values)
public static string Join<T>(string separator, IEnumerable<T> values)
public static string Join(string separator, params Object[] values)
Run Code Online (Sandbox Code Playgroud)

通过添加以下方法在.NET 4中更改了以下方法params:

public static string Join(string separator, params string[] values)
Run Code Online (Sandbox Code Playgroud)

自.NET 1.0以来,已有以下方法可用:

public static string Join(string separator, string[] values)
public static string Join(string separator, string[] value, int startIndex, int count)
Run Code Online (Sandbox Code Playgroud)

以下是大变化之后/之前的参考文档:

  • @ user1757980不同之处在于.NET 4中添加了`params`修饰符.在你的代码中,你将`string`(不是`string []`)传递给方法,在.NET 4中隐式创建一个数组长度为1以保持该值. (2认同)