You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VB.Net根据数据集中的最近日期返回对应数值

VB.NET 实现方案

前置说明

你需要先把源数据加载到可遍历的容器中,以下提供两种最常用场景的实现代码,均基于LINQ实现,使用前需要先引入命名空间:
Imports System.Linq


场景1:数据存储在DataTable中

' dt为存储了你的业务数据的DataTable实例
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
    Return 0
End If

' 按MyDate降序排序,取第一条即为最近日期对应的行
Dim latestRow = dt.AsEnumerable() _
                  .OrderByDescending(Function(r) r.Field(Of Date)("MyDate")) _
                  .FirstOrDefault()

Return If(latestRow IsNot Nothing, latestRow.Field(Of Decimal)("MyValue"), 0)

注意:如果你的MyDate字段在DataTable中为字符串存储,需要先转换为日期类型再排序,将排序逻辑改为:OrderByDescending(Function(r) CDate(r.Field(Of String)("MyDate")))


场景2:数据存储在自定义类集合中

首先你如果已经定义了对应数据结构的类:

Public Class DataItem
    Public Property MyDate As Date
    Public Property MyValue As Decimal
End Class

假设你有List(Of DataItem)类型的集合实例dataList,实现代码如下:

If dataList Is Nothing OrElse dataList.Count = 0 Then
    Return 0
End If

Dim latestItem = dataList _
                 .OrderByDescending(Function(item) item.MyDate) _
                 .FirstOrDefault()

Return If(latestItem IsNot Nothing, latestItem.MyValue, 0)

原有代码问题说明

你之前的代码只声明了单个myDate变量,没有和全量数据集关联,自然无法拿到整个数据集的最大日期,以上方案通过对全量数据按日期倒序排序,取首行即可直接拿到最近日期对应的数值。


内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:36:02