【问题标题】:VB.NET iterate through class items saved to List Of(Class)VB.NET 遍历保存到 List Of(Class) 的类项
【发布时间】:2021-10-18 21:38:02
【问题描述】:

我有一个公共类 Field_Data

Public Class Field_Data

#Region "Location_v1"
    Public Property sample_name As String
    Public Property analysis_date As String

我可以实例化该类并向其添加多个子集的数据

  For iCol = 7 To LastCol
        Dim myFDData As New Field_Data
        myFDData.sample_name = wkbRep.Worksheets(0).Range(31, iCol).Value
        myFDData.analysis_date = wkbRep.Worksheets(0).Range(32, iCol).Value

我将每个填充类添加到列表中

Dim Summary_Data As New List Of(Field_Data)

使用

Summary_Data.Add(myFDData)

填满列表

然后我想遍历列表以编写摘要文件

For Each MyFieldItem as Field_Data In Summary_Data

返回空值

我做错了什么?直到

【问题讨论】:

  • 您没有向我们展示某些内容,或者您​​遗漏了重要的细节。我能够按照您的步骤并让它打印正确的值。示例:dotnetfiddle.net/RPfEaV

标签: vb.net list class


【解决方案1】:

我不确定你哪里出错了,因为你没有包含所有代码。看看这是否符合你的模式。我假设您正在从 Excel 中检索数据。这可能有点棘手,但您没有提供代码。将工作分成 2 种方法可以帮助您了解哪里出了问题。设置断点并逐步观察变量的值。

Private Summary_Data As New List(Of Field_Data)

Private Sub AddDataToSummaryList()
    For iCol = 7 To LastCol
        Dim myFDData As New Field_Data
        myFDData.sample_name = wkbRep.Worksheets(0).Range(31, iCol).Value
        myFDData.analysis_date = wkbRep.Worksheets(0).Range(32, iCol).Value
        Summary_Data.Add(myFDData)
    Next
End Sub

Private Sub WriteListToFile()
    For Each MyFieldItem As Field_Data In Summary_Data
        'Your code to write file here
    Next
End Sub

【讨论】:

    【解决方案2】:

    我认为您将所有东西都添加到了错误的列表中

    这是一个简单的例子

    Imports System
    imports System.Collections.Generic
                    
    Public Module Module1
    
        Dim x as new List(of String)
        
        Public Sub Main()
            
            Dim x as new List(of String)
                
            x.Add("")
            
            HowMany()
        End Sub
        
        sub HowMany() 
            Console.Out.WriteLine(x.Count)
        end sub
        
    End Module
    

    您在班级级别创建了一个新列表 X,并且您在更本地级别创建了另一个也称为 X 的列表。你填写了本地的,然后在其他地方使用了一级。

    上面的代码打印 0,因为没有任何东西添加到类级别列表中

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      相关资源
      最近更新 更多