如何检查字典中的值是否大于传递的值

时间:2015-07-14 21:36:44

标签: vb.net

    Dim dictionary As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String)


 dictionary.Add(i, str)

 Dim rs = dictionary.Where(Function(r) DateTime.Parse(r.Value) > DateTime.Parse(str))

我正在向字典中动态添加一些值,其中Key是整数类型,值是字符串类型。

所以在添加到字典后我需要检查where新条件的值是否大于字典内的所有值。如果是,它应返回布尔值true否则为false

2 个答案:

答案 0 :(得分:1)

以下代码可以满足您的要求。

Dim dictionary As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String)
dictionary.Add(0, "1-May-2015")
dictionary.Add(1, "6/10/15")

Dim i As Integer = 2
Dim str As String = "2015-06-11"
Dim larger As Boolean = dictionary.All(Function(r) DateTime.Parse(r.Value) < DateTime.Parse(str))
dictionary.Add(i, str)

MessageBox.Show(str & " is " & If(larger, "", "not") & " larger than all previous values")

在将新项添加到字典之前完成检查,以便如果新日期等于最大的上一个日期,则布尔值为False。

但是,您应该将日期存储为DateTime而不是字典中的String(Of Integer,DateTime)。

答案 1 :(得分:0)

你做不到。字典使用复杂的散列函数来散列键并返回值。因此,字典不关心价值。

但是,您的问题有一个简单的解决方案。 您需要做的就是存储一个包含最大数字的变量。如果新数字最大,则更新此变量并返回true。