let reader = selectCommand.ExecuteReader()
let getBytesData (x : IDataReader) =
let len = reader.GetBytes(1, int64 0, null, 0, 0);
// Create a buffer to hold the bytes, and then
// read the bytes from the DataTableReader.
let buffer : byte array = Array.zeroCreate (int32 len)
x.GetBytes(1, int64 0, buffer, 0, int32 len) |> ignore
buffer
let retVal =
List [ while reader.Read() do
yield (reader.GetString(0), getBytesData reader,
reader.GetDateTime(2)) ]
我有上面的代碼從datareader讀取字節[]。F#與DataReader配合使用
getBytesData函數將讀取器讀取並返回來自reader的字節[]。
- 一切工作正常,但它getBytesData函數工作非常無功能的方式。
- 我很創建零填充的字節數組只是創建數組,是有創建動態擴張或固定lenght陣列
的任何方式有什麼辦法,我可以在F#優化?
對不起樣的問題,但我已經開始對F#一個新的項目,以榨取所有果汁出來的,所以試圖讓每一行最優化的方式
使用零初始化數組是沒有問題的 - 所有CLR數組始終在分配零初始化,沒有選項來獲得一個未初始化一個爲「填寫「後。 – 2010-06-07 04:20:37