2013-05-20 8 views
1

Я пытаюсь преобразовать двойной [,] на одну строку [], как мой код показывает нижеstring.join метод, используемый в SharpDevelop

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

`

Когда я сделал это в визуальной студии все работал как ожидалось. Но в SharpDevelop я получаю эти ошибки 2

(1) Лучший перегружен матч метод «string.join (строка, строка [])» имеет некоторые недопустимые параметры и (2) Аргумент 2: не может конвертировать из ' string 'to 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); 

Единственная проблема у меня с этим я бегу из памяти и, когда я использую tempString я получить из ошибки памяти.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

+1

Что версия моно вы используете? – giacomelli

+1

@giacomelli: ... или версия .NET. OP, похоже, не указывает, где он использует Mono. –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

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) 

Следующий метод был изменен в .NET 4 добавлением params:

public static string Join(string separator, params string[] values) 

Следующие методы были доступны с. NET 1.0:

public static string Join(string separator, string[] values) 
public static string Join(string separator, string[] value, int startIndex, int count) 

Вот ссылка docum ентация для после/до больших изменений:

+0

Вы правы. Я использую фреймворк 3.5. Ссылка, которую вы предоставили для .net 3.5 перегрузок, по-прежнему показывает string.join (строка, строка []). – mrsargent

+2

@ user1757980 Разница заключается в добавлении модификатора 'params' в .NET 4. В вашем коде вы передаете метод' string' (а не 'string []') методу, который в .NET 4 неявно создает массив длиной 1, чтобы сохранить это значение. –