Я получаю данные от Device(Time attendance)
, используя библиотеку C++ в C# 4.0, проблема заключается в том, что с полем имени есть некоторая величина нежелательной почты.Удалить ненужное значение из строки
Поле имени - это массив байтов, и я попробовал использовать Encoding.Default.GetString(user.Name)
, здесь пользователь - это Struct.
[StructLayout(LayoutKind.Sequential, Size = 48, CharSet = CharSet.Ansi), Serializable]
public struct User
{
public int ID;
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] Name;
}
Выход
"Jon\0 41 0"
"rakesh\0 6"
Я хочу удалить \0 41 0
и \0 6
.
Любая помощь будет оценена по достоинству.
Вы должны использовать 'fixed' ключевое слово для' байт [] '. Затем просто используйте 'new string ((sbyte *) User.Name)'. См. MSDN для поведения по этому вопросу. – leppie
Почему бы не объявить поле как 'String' напрямую? –