2017-05-01 61 views
0

我有以下代码:环路通过与声明

 Public Class Compress 


    Public Shared Sub delta() 
     Dim results As New Compress() 
     With results 
     .... 
     ... 
     ... 
     End With 
    end sub 
    end class 

如何访问到的元素从声明?我想循环是这样的:

for each element in results 
    .... 
    Next 

所以,目前我用下面的语句语句之后添加的每个元素行:

   Sumtable.Rows(Sumtable.Rows.IndexOf(row))("Stdflow" & tmp) = Math.Round(results.flow, 2) 
       Sumtable.Rows(Sumtable.Rows.IndexOf(row))("Stdvol" & tmp) = Math.Round(results.vol, 2) 
       Sumtable.Rows(Sumtable.Rows.IndexOf(row))("k" & tmp) = Math.Round(results.k, 2) 
       Sumtable.Rows(Sumtable.Rows.IndexOf(row))("VOS" & tmp) = Math.Round(results.vos, 2) 
       Sumtable.Rows(Sumtable.Rows.IndexOf(row))("μ" & tmp) = Math.Round(results.μ, 2) 

但我想循环槽结果获得一个由一个元素,以避免不必要的编码

+1

对于结果中的每个元素都不起作用?显示什么错误? – Ryan

+0

错误BC32023表达式的类型为'',它不是一个集合类型 – badscrool

+0

什么是'Compress'应该表示它有项目,这些项目代表什么?很有可能适当的行为是继承'Connection(Of T)',它已经实现了'IList(Of T)',并且为你提供了所有的列表功能。 – jmcilhinney

回答

0

啊是的,你需要用正确的方法来装饰你的类,使这项工作。实际上,你需要提供的是一个GetEnumerator()实现,它返回一些MoveNext()作为Boolean和Current作为T;然而,如果你不通过IEnumerable(Of T)做到这一点,人们会惊恐地尖叫。

问题中没有足够的信息来提供有关可枚举需要做什么的任何提示。

+0

@badscrool,我们无法向您提供详细信息,因为您向我们提供了任何信息。如果你想使用'For Each'循环枚举一个对象,那么你按照指示进行操作。正如答案中已经指出的,你没有给我们足够的信息让我们再给你。 – jmcilhinney

+0

好吧,好吧,我认为有一些esy-实施解决方案,因为我很新。我不明白你想要什么类型的信息。如果它对你有帮助,我可以把完整的代码。 – badscrool