【问题标题】:Linq Select All Except items from listboxLinq 从列表框中选择除项目之外的所有项目
【发布时间】:2013-09-21 19:15:46
【问题描述】:

我一直在努力寻找一种方法来做到这一点。我在 asp.net 中有一个列表框,我使用它看起来像:

<asp:ListBox ID="lstLinkedProspect" runat="server" SelectionMode="Multiple" />

我想要做的是能够选择我在特定表中的所有项目,除了列表框中的项目。不仅是选定的,而且所有已经在列表中的项目。我使用 System.Linq.Dynamic 库。这是我想要做的:

Dim lstProspect = dbConnection.Prospects.Where(If(String.IsNullOrWhiteSpace(SearchFilters.Value), "ProspectId > 0", SearchFilters.Value).ToString) _
                                                .Except(' There goes all the items in the list box)

我已经尝试过的是:

Dim lstProspect = dbConnection.Prospects.Where(If(String.IsNullOrWhiteSpace(SearchFilters.Value), "ProspectId > 0", SearchFilters.Value).ToString) _
                                                .Except(lstLinkedProspect.Items.Cast(Of ListItem)().Where(Function(x) x.Value).Cast(Of Beans.Prospect))

是否可以在 Linq 中获取不在列表框中的表中的所有项目?请注意,列表框中 ListItem 的 Value 属性是 ProspectId。

提前致谢。

【问题讨论】:

  • 动态 LINQ 是否支持Except?你能接受常规的 LINQ 解决方案吗?这是什么类型的 LINQ?
  • 是的,它确实支持例外。优点之一是您可以在 where 子句中传递一个字符串,就像我在代码示例中所做的那样。我可以毫无问题地使用常规的 Linq 解决方案。
  • 看看这篇文章,它可能会对你有所帮助stackoverflow.com/questions/853526/…

标签: asp.net vb.net linq listbox except


【解决方案1】:

这是我找到的实现我想要的代码:

Dim lstItems = dbConnection.Prospects.Where(Function(x) ids.Contains(x.ProspectId))
Dim lstProspect = dbConnection.Prospects.Where(If(String.IsNullOrWhiteSpace(SearchFilters.Value),
"ProspectId > 0", SearchFilters.Value).ToString).Except(lstItems)

希望这可以帮助任何解决这个问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多