2014-09-14 6 views
0
Private Structure Staff 
    Public Name As String 
    Public Number As Integer 
    Public Total As Integer 
    Public Status As String 

End Structure 

Dim Staffdata As Staff 

Private Sub btnAddArray_Click(sender As Object, e As EventArgs) Handles btnAddArray.Click 
    Dim strinfo As String 


    Staffdata.Name = txtStaffmem.Text 
    Staffdata.Number = txtStaffNum.Text 
    Staffdata.Total = lblTotal.Text 

    If radFullTime.Checked = True Then 
     Staffdata.Status = "Full time" 
    ElseIf radPartTime.Checked = True Then 
     Staffdata.Status = "Part time" 
    End If 

    strinfo = ("Name: " & Staffdata.Name & ", Number: " & Staffdata.Number & ",Status: " & Staffdata.Status & ",Total sales: " & Staffdata.Total) 

이 정보를 배열에 추가하려면이 버튼을 사용하고 싶습니다. 어떻게해야합니까? 또한이 구조를 사용하여 최소한 5 명의 직원 결과를 추가하고 배열에 추가해야합니다.배열에 구조를 추가하는 방법은 무엇입니까?

답변

0

strinfo을 스태프 정보를 저장하는 문자열 배열로 선언 할 수 있습니다. 따라서 귀하의 코드는 다음과 같습니다 :

Private Structure Staff 
    Public Name As String 
    Public Number As Integer 
    Public Total As Integer 
    Public Status As String 
End Structure 
Dim Staffdata As Staff 
Dim stafCount As Integer=0 ' To calculate array index 
Dim strinfo() As String ' Declare staff info as a string 
Private Sub btnAddArray_Click(sender As Object, e As EventArgs) Handles btnAddArray.Click 
    Staffdata.Name = txtStaffmem.Text 
    Staffdata.Number = txtStaffNum.Text 
    Staffdata.Total = lblTotal.Text 
    If radFullTime.Checked = True Then 
     Staffdata.Status = "Full time" 
    ElseIf radPartTime.Checked = True Then 
     Staffdata.Status = "Part time" 
    End If 
    strinfo(stafCount) = "Name: " & Staffdata.Name & ", Number: " & Staffdata.Number & ",Status: " & Staffdata.Status & ",Total sales: " & Staffdata.Total 
    stafCount +=1 ' Increment array index 
End Sub 
2

일반적인 방법은 구조에서 ToString 메서드를 재정의하는 것입니다.

Private Structure Staff 

    Public Name As String 
    Public Number As Integer 
    Public Total As Integer 
    Public Status As String 

    Public Overrides Function ToString() As String 
     Return String.Concat(
      "Name: ", Me.Name, 
      ", ", 
      "Number: ", Me.Number.ToString(), 
      ", ", 
      "Status: ", Me.Status, 
      ", ", 
      "Total sales: ", Me.Total.ToString() 
     ) 
    End Function 

End Structure 

List(Of T)을 사용하여 데이터를 저장하십시오.

Private ReadOnly StaffData As New List(Of Staff) 

클릭 핸들에서 새 항목을 목록에 추가하십시오. 당신은 당신이 할 수있는 모든 항목을 포함하는 단일 문자열을 만들려면

Private Sub btnAddArray_Click(sender As Object, e As EventArgs) Handles btnAddArray.Click 
    Me.StaffData.Add(New Staff() With { 
     .Name = Me.txtStaffmem.Text, 
     .Number = Integer.Parse(Me.txtStaffNum.Text), 
     .Total = Integer.Parse(Me.lblTotal.Text), 
     .Status = If(Me.radFullTime.Checked, "Full time", If(Me.radPartTime.Checked, "Part time", "")) 
    }) 
End Sub 

이제 다음과 같이 ToString``의 * 전문 * 접근과`List`에 대한

Dim all As String = String.Join("; ", (From item As Staff In Me.StaffData Let s = item.ToString() Select s)) 
+1

1 배열보다는. – Plutonix

관련 문제