问题描述
a是一个二维数组,b是一个一维数组,如何将a中第一行数据全部赋值给b,不能使用for……next单个赋值,因为每一行的数据太多,有四万多个,单个赋值太慢,有什么办法可以直接赋值啊?谢谢了!
解决方案
解决方案二:
4万个对于计算机来说不算多。现在的处理器每秒钟可以处理百亿级别的数据量。可以用Marshal.Copy实现堆上内存的直接拷贝,这是最快的。http://blog.csdn.net/xiaobai1593/article/details/7065955
解决方案三:
引用1楼caozhy的回复:
4万个对于计算机来说不算多。现在的处理器每秒钟可以处理百亿级别的数据量。可以用Marshal.Copy实现堆上内存的直接拷贝,这是最快的。http://blog.csdn.net/xiaobai1593/article/details/7065955
使用for……next方法我试过,得一两秒,vb.net里面没有marshal.copy函数啊,只找到一个marshalbyrefobject。
解决方案四:
高手帮帮忙啊,谢谢了
解决方案五:
引用2楼guo88455648的回复:
Quote: 引用1楼caozhy的回复:
4万个对于计算机来说不算多。现在的处理器每秒钟可以处理百亿级别的数据量。可以用Marshal.Copy实现堆上内存的直接拷贝,这是最快的。http://blog.csdn.net/xiaobai1593/article/details/7065955使用for……next方法我试过,得一两秒,vb.net里面没有marshal.copy函数啊,只找到一个marshalbyrefobject。
Runtime.InteropServices.Marshal.Copy
解决方案六:
https://msdn.microsoft.com/zh-cn/library/system.runtime.interopservices.marshal.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
解决方案七:
ModuleModule1SubMain()Dima(20,40000)AsIntegerDimb(40000)AsInteger'生成随机数据'Randomize()Fori=0Tob.Count-1a(0,i)=CInt(Rnd()*10000)Next'复制'Console.WriteLine("{0:hh:mm:ss.fff}",DateTime.Now())Fori=0Tob.Count-1b(i)=a(0,i)NextConsole.WriteLine("{0:hh:mm:ss.fff}",DateTime.Now())Console.ReadLine()EndSubEndModule
09:41:34.90309:41:34.903
怎么可能“得一两秒”呢!