【发布时间】:2016-11-05 16:59:39
【问题描述】:
我有这个Dictionary:
Public TblDic As New Dictionary(Of String, List(Of Tuple(Of Date, Date, Decimal)))
我需要检索在第 2 项上具有最高日期的元组的第 3 项(十进制)。
我可以通过知道日期来检索第三项,但我无法检索到最高日期:
Dim LastDate As Date = Date.ParseExact("31/12/2016", "dd/MM/yyyy",
New CultureInfo("it-IT"), DateTimeStyles.None)
Dim LastRate2 As Decimal = TblDic("Legali").Find(Function(D) D.Item2 = LastDate).Item3
另一种方法是将所有元组放入 DataTable 并使用 DataTable.Select 以这种方式检索十进制字段:
Dim LastRate As Decimal = DT_Rates.Select("EndDate=MAX(EndDate)")(0).Field(Of Decimal)("Rate")
所以,我的问题是:
1) 是否可以在不知道最后日期的情况下使用 List.Find?
2) List.Find 和 DataTable.Select 之间的最佳实践是什么?
【问题讨论】:
标签: vb.net list find predicate