ファイルから読み込んだリストの中にアルファベット順に並べ替えた2つのカラムデータがあります。リストのバイナリ検索とリストの特定のカラムの参照
//ファイル
フムス、0.75
チリ、0.50
Tabouli、1.25
Tzatziki、0.50
//変数やパブリックプロパティ
の宣言Dim extraList As List(Of extra)
Public Class extra
Implements IComparable(Of extra)
Public Property Name As String
Public Property Price As Decimal
'Public Property extraList As List(Of extra)
Public Function CompareTo(other As extra) As Integer Implements IComparable(Of extra).CompareTo
Return Me.Name.CompareTo(other.Name)
End Function
End Class
//リストにデータを格納し、今私は、ユーザーが余分を入力し、それが存在するかどうかを確認するためにバイナリ検索を使用しての検索を可能にする方法をコーディングする必要が
Sub Get_Extras_List()
'Reads the extras file and puts the information into a list, splitting the name of the extra and the price into separate columns
Dim allExtras = From line In System.IO.File.ReadLines("C:\Users\ExtrasList.txt")
Let Columns = line.Split(","c)
Where Columns.Length = 2
Let Price = Decimal.Parse(Columns(1).Trim())
Let Name = Columns(0).Trim()
Select New extra With {.Name = Name, .Price = Price}
extraList = allExtras.ToList()
'Sort the list alphabetically
extraList.Sort()
End Sub
それをソートします。これまで私はこれを試しましたが、それはうまくいかず、たとえそれが真実か偽りの価値を返すにはどうすればよいでしょうか? (それが存在するかどう?)
Sub Search_Extras_List()
Dim strSearchExtra As String = Console.ReadLine()
Console.WriteLine(vbLf & "BinarySearch for '{0}':", strSearchExtra)
Dim index As Integer =
List(Of extra).BinarySearch(extraList.Name, strSearchExtra)
End Sub
最後に、私はエキストラのいずれかを選択して、合計金額に価格を追加するためのユーザーを取得する必要があります。どのようにして価格を参照するのですか? extraList.Price?余計です。