Linq选择列表框中的所有项目除外

时间:2013-09-21 19:15:46

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

我一直在努力解决这个问题。我在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。

提前致谢。

1 个答案:

答案 0 :(得分: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)

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