如题,请教该如何实现该目的,比如筛选第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");