首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在vb.net数据表中使用Linq count函数

在vb.net数据表中使用Linq count函数
EN

Stack Overflow用户
提问于 2011-08-03 00:42:45
回答 1查看 3.2K关注 0票数 0

我写了下面的代码。我知道这很愚蠢。我想用linq count来做个简短的说明。请把灯给我。

代码语言:javascript
运行
复制
            Dim query0 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 0
            Dim count0 As Integer = query0.Count

            Dim query1 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 1
            Dim count1 As Integer = query1.Count

            Dim query2 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 1
            Dim count2 As Integer = query2.Count


            Dim query3 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 3
            Dim count3 As Integer = query3.Count

            Dim query4 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 4
            Dim count4 As Integer = query4.Count

            Dim query5 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") = 5
            Dim count5 As Integer = query5.Count

            Dim queryOver6 = From obj In dtAginglist _
                        Where (obj.Field(Of String)("CurrentStatus") = "Open" Or obj.Field(Of String)("CurrentStatus") = "Acknowledge") _
                          And obj.Field(Of Integer)("OpenDays") > 5
            Dim countOver6 As Integer = queryOver6.Count

            Dim Result As String
            Result = String.Format("0 Day : {1}{0}1 Day :{2}{0}2 Days :{3}{0}3 Days :{3}{0}4 Days :{5}{0}5 Days :{6}{0}Over 6 Days :{7}{0}", _
                                   vbCrLf, count0, count1, count2, count3, count4, count5)

代码语言:javascript
运行
复制
Dim orderCounts = From c In customers New With { _
    c.CustomerID, Key .OrderCount = c.Orders.Count() }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-03 03:11:59

我认为您需要使用AsQueryable()扩展来完成此操作:

代码语言:javascript
运行
复制
Dim orderCounts = From c In customers.AsQueryable()
                  New With
                  {
                      c.CustomerID,
                      Key.OrderCount = c.Orders.Count()
                  }

您还需要添加导入System.Data.DataSetExtensions

这是因为数据表的行集合没有实现IEnumerable。请参阅LINQ query on a DataTable

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6915514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档