Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从字符中解析垃圾[256]_C#_Arrays_String - Fatal编程技术网

C# 如何从字符中解析垃圾[256]

C# 如何从字符中解析垃圾[256],c#,arrays,string,C#,Arrays,String,我正在向定义为数组[256]的接口字段写入字符串,我不确定如何防止名称末尾的垃圾显示 以下是我的设置方式: char[256] msg.name.Value = "This name".ToCharArray(); 另一方面,我正在将消息解压缩到数据库表中: newRow["Name"] = new string(msg.name.Value); 但我发现整个字符串的结尾都是垃圾。如何解析“thisname”结尾的垃圾?我习惯了在C++中使用 MeMCPY 来做这件事。 ToCharArr

我正在向定义为数组[256]的接口字段写入字符串,我不确定如何防止名称末尾的垃圾显示

以下是我的设置方式:

char[256] msg.name.Value = "This name".ToCharArray(); 
另一方面,我正在将消息解压缩到数据库表中:

newRow["Name"] = new string(msg.name.Value);

但我发现整个字符串的结尾都是垃圾。如何解析“thisname”结尾的垃圾?我习惯了在C++中使用<代码> MeMCPY 来做这件事。 ToCharArray没有在末尾加0。因此,我想,考虑到这个问题,您可能会尝试实现一个扩展方法,它可以执行以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string test = "This is a test";
            char[] testArr = test.ToPaddedCharArray(32);
            for (int i = 0; i < testArr.Length; i++)
            {
                Console.WriteLine("{0} = {1}", testArr[i], (int)testArr[i]);
            }
        }
    }

    public static class MyExtensions
    {
        public static char[] ToPaddedCharArray(this String str, int length)
        {
            char[] arr = new char[length];
            int minl = Math.Min(str.Length, length-1);
            for (int i = 0; i < minl; i++)
            {
                arr[i] = str[i];
            }
            for (int i = minl; i < length; i++)
            {
                arr[minl] = (char)0;
            }
            return arr;
        }
    }

}

你看到的是什么垃圾?有用吗
char[256]msg.name.Value=“此名称\0”。ToCharArray()
char[256]msg.name.Value=“This name”.ToCharArray()不是有效的C#。
msg.name.Value实际上是如何定义的?看看如何在C中初始化字符#
T = 84
h = 104
i = 105
s = 115
  = 32
i = 105
s = 115
  = 32
a = 97
  = 32
t = 116
e = 101
s = 115
t = 116
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
  = 0
Press any key to continue . . .