62,047
社区成员
发帖
与我相关
我的任务
分享
Public Shared Function GetStudents () As List (Of Student)
Dim key As String = "AllStudents"
If Not IsNothing (Cache(key)) Then
Return CType(Cache(key), List(Of Student))
End If
Dim lItems As List(Of Student)
'读取数据库,返回值给lItems,此处代码省略
Cache.Insert(key, lItems, Nothing, DateTime.Now.AddSeconds(600), TimeSpan.Zero)
Return lItems
End Function
Public Shared Sub GetStudentsInClass (classId As Integer)
'假设有50名学生,无论后面的筛选如何进行,下面这句的返回值应该是不变的
Dim lItems As List (Of Student)=GetStudents()
If classId > 0 Then
'此处进行筛选.按理不是直接操作缓存的数据,但问题是,这句结束后,缓存的数据就变成了筛选后的数据,而不是全部
lItems.RemoveAll (Function (vStudent) vStudent.ClassId <> classId)
End If
'后面展示结果
End Sub