I needed to populate a list of record with file names along with how large the files were and who owned the file. Then, I needed to find how much space a particular user was taking up on the shared drive. The user would then be tarred and feathered, but this was nothing my code was going to have to deal with.
So I have a class of three properties, though I’ve only included the two relevant ones. I also declare a List(Of Results) to store my wonderfully awesome data:
Public Class Results Private _fileSize As Int64 Public Property FileSize() As Int64 Get Return _fileSize End Get Set(ByVal value As Int64) _fileSize = value End Set End Property Private _userName As String Public Property UserName() As String Get Return _userName End Get Set(ByVal value As String) _userName = value End Set End Property ... Lots of other code omitted End Class Dim ResultsFile As List(Of Results)
The details of how I populate the ResultsFile variable aren’t important, but here is the LINQ statement I use to total the file sizes:
Dim TotalFileSize As Int64 = Aggregate Result In ResultsFile Where Result.UserName = UserName Into Sum(Result.FileSize)
Simple and sweet.