首页 > 解决方案 > 价格和数量的字典

问题描述

我试图获得最高的价格和最高的成交量。这是我正在使用的,但它只给了我最高的价格。如何找到同时包含两个最高数字的记录?

Value = StockData.OrderByDescending(Function(u) u.Value.Price).ThenBy(Function(u) u.Value.Volume)

标签: vb.net

解决方案


我不得不猜测你的班级是什么样的以及你的字典的结构。我认为您正在寻找的是最大的美元交易量。我按价格*数量订购了字典。消息框字符串中 : 后面的符号是格式代码。

Public Class Stock
    Public Property StockSymbol As String
    Public Property Price As Decimal
    Public Property Volume As Integer

    Public Sub New(Symbol As String, p As Decimal, v As Integer)
        StockSymbol = Symbol
        Price = p
        Volume = v
    End Sub

End Class

Private StockData As New Dictionary(Of String, Stock)

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Add some sample data to the Dictionary
    StockData.Add("ABC", New Stock("ABC", 12.33D, 14000))
    StockData.Add("DEF", New Stock("DEF", 22.5D, 1050200))
    StockData.Add("GHI", New Stock("GHI", 19.45D, 15000))
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim DictionaryItem = StockData.OrderByDescending(Function(u) u.Value.Price * u.Value.Volume).First
    MessageBox.Show($"{DictionaryItem.Value.StockSymbol} - Price {DictionaryItem.Value.Price:##,###.#0}, Volume {DictionaryItem.Value.Volume:##,###,##0}")
End Sub

推荐阅读