【问题标题】:VB.NET and IEnumerableVB.NET 和 IEnumerable
【发布时间】:2018-06-30 01:13:31
【问题描述】:

我是 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.CheckError(JToken 结果) 在 ExchangeSharp.ExchangePoloniexAPI.MakePrivateAPIRequest(Stri‌​ng 命令,Object[] 参数) 在 ExchangeSharp.ExchangePoloniexAPI.d__26‌​.MoveNext() 在 ConsoleApp3.Module1.Main( ) 在 C:\Users\KMS10\source\repos\ConsoleApp3\ConsoleApp3\Module1.‌​vb:line 42

【问题讨论】:

  • 请编辑您的问题并发布您遇到的异常的堆栈跟踪。
  • 我正在使用 poloniex API。这是我从任何示例/尝试中获得的堆栈跟踪:'ExchangeSharp.APIException occurred HResult=0x80131500 Message=Invalid command。 Source=ExchangeSharp StackTrace:ExchangeSharp.ExchangePoloniexAPI.CheckError(JToken result) at ExchangeSharp.ExchangePoloniexAPI.MakePrivateAPIRequest(String command, Object[] parameters) at ExchangeSharp.ExchangePoloniexAPI.d__26.MoveNext() at ConsoleApp3.Module1.Main( ) 在 C:\Users\KMS10\source\repos\ConsoleApp3\ConsoleApp3\Module1.vb:line 42 '
  • 这不是您的循环的问题。根据堆栈跟踪,this line 失败是因为来自 API 的意外(无效?)响应。我建议您联系库的维护者和/或查看来自 Poloniex API 的文档和响应,以找出请求/响应未正确处理的原因,修复它,如果问题出在他们的最后提交一个 GitHub 拉取请求来修补它。

标签: vb.net ienumerable ienumerator exchange-sharp


【解决方案1】:

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

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

For Each openOrder In openOrders
    ...
Next

【讨论】:

  • 只是从中得到无效的命令。我已经从示例中尝试过这样的东西,并且想知道为什么它不起作用。知道为什么迭代这个 IEnumerable 如此困难吗??
【解决方案2】:

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

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

【讨论】:

  • 仍然不工作:( Dim openOrders As IEnumerable(Of ExchangeOrderResult) = api.GetOpenOrderDetails() For Each item As ExchangeOrderResult In openOrders 'ExchangeSharp.APIException: 'Invalid command.' ' 对项目变量做一些事情下一个
猜你喜欢
  • 1970-01-01
  • 2011-12-26
  • 2017-05-18
  • 2019-03-17
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
相关资源
最近更新 更多