Try this:
Dim provider As System.Globalization.CultureInfo = System.Globalization.CultureInfo.InvariantCulture
Dim dt As DataTable = New DataTable()
dt.Columns.Add(New DataColumn("Id", Type.GetType("System.Int32")))
dt.Columns.Add(New DataColumn("LocationId", Type.GetType("System.Int32")))
dt.Columns.Add(New DataColumn("UserName", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("Startdate", Type.GetType("System.DateTime")))
dt.Rows.Add(New Object(){1, 10, "xz", DateTime.ParseExact("2017-02-21 09:05:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){2, 10, "xz", DateTime.ParseExact("2017-02-21 09:15:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){3, 10, "xz", DateTime.ParseExact("2017-02-21 09:25:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){4, 10, "xz", DateTime.ParseExact("2017-02-21 09:35:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){5, 11, "xz", DateTime.ParseExact("2017-02-21 09:45:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){6, 11, "xz", DateTime.ParseExact("2017-02-21 09:55:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){7, 11, "xz", DateTime.ParseExact("2017-02-21 10:05:20", "yyyy-MM-dd HH:mm:ss", provider)})
dt.Rows.Add(New Object(){8, 11, "xz", DateTime.ParseExact("2017-02-21 10:15:20", "yyyy-MM-dd HH:mm:ss", provider)})
Dim result = dt.AsEnumerable() _
.GroupBy(Function(x) New With { _
.LocationId=x.Field(Of Integer)("LocationId"), _
.UserName=x.Field(Of String)("UserName")}) _
.Select(Function(grp) New With _
{ _
.LocationId = grp.Key.LocationId, _
.UserName = grp.Key.UserName, _
.StartTime = grp.Select(Function(a) a.Field(Of DateTime)("StartDate")).Min().ToString("HH:mm:ss"), _
.EndTime = grp.Select(Function(a) a.Field(Of DateTime)("StartDate")).Max().ToString("HH:mm:ss"), _
.TimeDiff = grp.Select(Function(a) a.Field(Of DateTime)("StartDate")).Max() - grp.Select(Function(a) a.Field(Of DateTime)("StartDate")).Min() _
}) _
.ToList()
Above should return:
LocationId UserName StartTime EndTime TimeDiff
10 xz 09:05:20 09:35:20 00:30:00
11 xz 09:45:20 10:15:20 00:30:00