VB.NET和IEnumerable

时间:2018-01-21 05:50:19

标签: vb.net ienumerable ienumerator exchange-sharp

我是VB.NET的新手,并没有得到我想要的语法。

使用此库: https://github.com/jjxtra/ExchangeSharp

我试图迭代开放订单。

Dim openOrders As IEnumerable(Of ExchangeOrderResult) = api.GetOpenOrderDetails()

这并没有给我一个错误,但是我尝试使用它所说的变量"无效命令" 所有这些都不起作用,我不知道如何迭代这个。

Console.WriteLine(openOrders.Count)
'also tried this

    Dim enumerator As IEnumerator(Of ExchangeOrderResult) = openOrders.GetEnumerator
    While (enumerator.MoveNext) 'crashes here
    End While

我不懂VB语法,而且我已经搜索了一两个小时,所以我现在已经放弃了。 任何帮助表示赞赏!

修改

我正在使用poloniex API。

这是我从任何示例/尝试获得的堆栈跟踪:

  

发生了ExchangeSharp.APIException HResult = 0x80131500消息=命令无效。 Source = ExchangeSharp StackTrace:在ExchangeSharp.ExchangePoloniexAPI.MakePrivateAPIRequest(Stri ng命令,Object []参数)的ExchangeSharp.ExchangePoloniexAPI.CheckError(JToken结果),位于ConsoleApp3.Module1.Main的ExchangeSharp.ExchangePoloniexAPI.d__26 .MoveNext()处( )在C:\ Users \ KMS10 \ source \ repos \ ConsoleApp3 \ ConsoleApp3 \ Module1.vb:第42行

2 个答案:

答案 0 :(得分:0)

使用For Each迭代IEnumerable。确保您已导入System.Collections.Generic:

Dim openOrders As IEnumerable(Of ExchangeOrderResult) = api.GetOpenOrderDetails()

For Each openOrder In openOrders
    ...
Next

答案 1 :(得分:0)

可枚举类似于集合,除了读取内容的唯一方法是遍历它。 VB.NET具有可用于此的For Each...Next结构。

For Each item As ExchangeOrderResult In openOrders
    ' Do something with item variable
Next