VB.NET DataTable.selcet怎么对某列数据进行条件筛选,筛选出来的结果该如何计算

如题,请教该如何实现该目的,比如筛选第3列小于5的所有数据。然后对结果求平均值。


        Dim dt As New DataTable
        dt.Columns.Add("first", GetType(String))
        dt.Columns.Add("second", GetType(String))
        dt.Columns.Add("third", GetType(Integer))
        dt.Rows.Add("1", "1", 1)
        dt.Rows.Add("2", "2", 2)
        dt.Rows.Add("3", "3", 3)
        dt.Rows.Add("4", "4", 4)
        dt.Rows.Add("5", "5", 5)
        dt.Rows.Add("6", "6", 6)
        dt.Rows.Add("7", "7", 7)
        Dim drArr = dt.Select("third > 5")
        Dim dt2 = dt.Clone()
        Dim sum As Integer = 0
        For Each dtr In drArr
            sum += dtr(2)
        Next
        Dim res = sum / drArr.Count
        Console.WriteLine(res)

举例说明:

有一个用户表,名称为 dtUsers,有id、姓名name、性别sex、年龄age

1.筛选所有的用户

     DataRow() drs1 =dtUsers.Select();

2.筛选所有性别为男的用户

     DataRow() drs2 =dtUsers.Select("sex = '男' ");

3.筛选所有性别为男且年龄在18岁以上的用户

     DataRow() drs3 =dtUsers.Select("sex = '男' and age >= 18");

4.筛选所有性别为男或者年龄在18岁以上的用户

     DataRow() drs4 =dtUsers.Select("sex = '男' or age >= 18");

5.筛选所有姓“夏”的用户

     DataRow() drs5 =dtUsers.Select("name like '夏%'");

6.筛选所有18岁以上的用户且按从大到小的顺序排序

     DataRow() drs5 =dtUsers.Select("age >=18","age desc");