here's my attempt. textbox1 is avg mark, textbox2 is classification:
vb Code:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim values As New List(Of Object())
values.Add(New Object() {70, -1, "1st"})
values.Add(New Object() {60, 69, "2.1"})
values.Add(New Object() {50, 59, "2.2"})
values.Add(New Object() {40, 59, "3rd"})
values.Add(New Object() {0, 39, "Unclassified"})
Dim avgMark As Decimal
If Decimal.TryParse(TextBox1.Text, avgMark) Then
TextBox2.Text = (From v In values _
Where avgMark >= CInt(v(0)) AndAlso avgMark <= If(CInt(v(1)) = -1, avgMark + 1, CInt(v(1))) _
Select CStr(v(2))).FirstOrDefault
End If
End Sub
End Class
to put that in a function with a single parameter:
vb Code:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim avgMark As Decimal
If Decimal.TryParse(TextBox1.Text, avgMark) Then
TextBox2.Text = getClassification(avgMark)
End If
End Sub
Private Function getClassification(ByVal avg As Decimal) As String
Dim values As New List(Of Object())
values.Add(New Object() {70, -1, "1st"})
values.Add(New Object() {60, 69, "2.1"})
values.Add(New Object() {50, 59, "2.2"})
values.Add(New Object() {40, 59, "3rd"})
values.Add(New Object() {0, 39, "Unclassified"})
Return (From v In values _
Where avg >= CInt(v(0)) AndAlso avg <= If(CInt(v(1)) = -1, avg + 1, CInt(v(1))) _
Select CStr(v(2))).FirstOrDefault
End Function
End Class