Есть ли в C# способ приведения двойного массива к строке, похожей на C++ cast.to чар*?
Я унаследовал код C++, который приводит двойной массив к символу char*, как показано ниже. В C# мне не удалось сгенерировать строку из массива двойников, которая соответствует строке, сгенерированной приведением C++. В C# можно ли каким-то образом сгенерировать строку из двойного массива, которая соответствовала бы строке, созданной в C++, где выполняется простое приведение к char*? Результатом приведения, по-видимому, являются какие-то двоичные данные.
Код на языке C++ :
char* s = (char*) Darray
где Даррей-это массив двойников
Что я уже пробовал:
В C# я, очевидно, не могу сделать следующее:
string theString = (string) Darray
В C# я безуспешно пытался сделать следующее:
int length = Darray.Length * sizeof(double); IntPtr pnt = Marshal.AllocHGlobal(length ); Marshal.Copy(Darray, 0, pnt, Darray.Length); byte[] Barray = new byte[length]; Marshal.Copy(pnt, Barray, 0, length); string theString = BitConverter.ToString(Barray);
Я тоже безуспешно пытался это сделать:
BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream m = new MemoryStream()) { formatter.Serialize(m, Darray); m.Position = 0; StreamReader sr = new StreamReader(m); string theString = sr.ReadToEnd(); }
Я тоже безуспешно пытался это сделать:
byte[] theBytesData = new byte[numBytesReqd]; Buffer.BlockCopy(Darray, 0, theBytesData, 0, numBytesReqd); string theString = Encoding.ASCII.GetString(theBytesData, 0, theBytesData.Length);
Может быть, нет никакого решения этой проблемы. Я был бы признателен за любые мысли.