我正试图获得将字符串转换为bitarray的函数,日期到bitarray到bitarray的时间字节到位数组。有谁能帮我用c#的这些函数吗
为了完整起见,我将包括将任意对象转换为字节数组的方法(它可能比BinaryFormatter和MemoryStream更快):
public static byte[] ToByteArray(object obj)
{
int len = Marshal.SizeOf(obj);
byte[] arr = new byte[len];
IntPtr ptr = Marshal.AllocHGlobal(len);
Marshal.StructureToPtr(obj, ptr, true);
Marshal.Copy(ptr, arr, 0, len);
Marshal.FreeHGlobal(ptr);
return arr;
}
最接近框架的是System.BitConverter
类和System.Text.Encoding.GetBytes()
方法。除此之外,您还需要代码将这些字节数组转换为位数组(尽管,实际上,对于任何相同的操作,字节数组都更好),并且这些都不包括日期/时间信息(您可以查看转换DateTime的Ticks
属性)。
如果您将任何类型视为对象,则可以使用一般方法获得byte[]
private byte[] ObjectToByteArray(Object myObject)
{
if(myObject == null)
return null;
BinaryFormatter bF = new BinaryFormatter();
MemoryStream mS = new MemoryStream();
bF.Serialize(mS, myObject);
return ms.ToArray();
}
然后你可以把它提供给BitArray的构造函数