LINQ返回布尔值

时间:2014-03-26 09:34:37

标签: .net vb.net linq

我必须检查集合是否有两个主键值。我做的很像,

//代码

Dim query = TableColumnsCollection.GroupBy(Function(x) x.IsPrimaryKey).Where(Function(y) y.Count() > 1)

现在,当计数超过" One"时,我必须将类型返回为boolean

当计数超过1时,它应该是" True"别的"错误"。

我应该得到类似的东西,

Dim blnFlag As Boolean= False

blnFlag=//Query here ???

当我尝试分配上述查询时,我收到以下错误。

"Value of type IEnumarable cannot be converted to Boolean"

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用Any代替Where

Dim containsDups As Boolean = TableColumnsCollection.
        GroupBy(Function(x) x.IsPrimaryKey).
        Any(Function(y) y.Count() > 1)

但如果您需要其他内容,也可以保留Where,之后使用Any

Dim allDups = TableColumnsCollection.
    GroupBy(Function(x) x.IsPrimaryKey).
    Where(Function(y) y.Count() > 1)
Dim containsDups As Boolean = allDups.Any()