首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在尝试从对象列表( subList )访问subList时,LINQ计数问题(VB.NET)

在尝试从对象列表( subList )访问subList时,LINQ计数问题(VB.NET)
EN

Stack Overflow用户
提问于 2017-03-20 02:03:16
回答 2查看 52关注 0票数 0

我很难弄清楚它为什么不能正常工作,但我要求它。

代码语言:javascript
复制
    Dim goodCount As Integer = (From item In equipmentTagList
                                Where item.Importance = "Critique"
                                Where item.Status <> TargetRange.OutOfRange
                                Select item).Count()

    Dim badCount As Integer = (From item In equipmentTagList
                               Where item.Importance = "Critique"
                               Where item.Status.Contains(TargetRange.OutOfRange)
                               Select item).Count()

EquipmentTagList是一个List(Of MachineTag) (自定义对象),因此我想从EquipmentTagList获得多少个匹配条件的MachineTag。我仍然不明白为什么第一种方法有效,而另一种则不行。通过调试,我知道第一个结果至少返回一个结果,而另一个结果不返回任何结果.我已经找了很多人来找人帮忙,但不幸的是我什么也没发现.

谢谢你帮我。

编辑:

我得到的错误是:没有将对象引用设置为对象实例的System.InvalidOperationException。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-20 02:29:03

假设目前item.Status是一种Integer数据类型(从您对TargetRange.OutOfRange的使用中推断出来,就好像它是一个Enum),那么您的第二个片段中的语法将被认为是错误的。

.Contains()方法保留用于IEnumerable对象,而不是Integer值。

如果稍微修改代码,如下所示:

代码语言:javascript
复制
Dim badCount = (From item In equipmentTagList
                    Where item.Importance = "Critique"
                    Where item.Status.Contains(TargetRange.OutOfRange)
                    Select item)

然后,...and在调用之后的某个点设置一个断点,您将注意到badCountNothing。因为Nothing不能有.Count,所以调用失败。

您的第一个片段是正确的-正如您已经指出的。

编辑

这里有东西不对劲。您的代码甚至不应该编译。

我得到的是:

所以item.Status当然不可能是Integer

票数 0
EN

Stack Overflow用户

发布于 2017-03-20 03:02:36

也许这会让事情变得简单一些。您可以在按Status过滤后按Importance进行分组。

代码语言:javascript
复制
Dim items = From i In equipmentTagList Where i.Importance = "Critique"
Dim counts = items.ToLookup(Function(i) i.Status <> TargetRange.OutOfRange)

Dim goodCount = counts(True).Count()
Dim badCount = counts(False).Count()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42894733

复制
相关文章

相似问题

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