使用LINQ从(对象的)另一个列表中删除(对象的的)匹配列表



我很难弄清楚如何完成问题标题中列出的任务。

基本上,我有一个"News"对象列表,定义为:

Dim news_list As List(Of News) = myNamespcae.News.ListNews()

根据条件的不同,我有另一个"新闻"对象列表作为;

Dim news_headlines As List(Of News) = myNamespace.News.getHeadlines()

然后,我有"点"再次作为列表(新闻)作为;

Dim spots = (From n In news_list Take (10) Select n)

我正在努力完成;如果news_headlines不为空,如果spots中存在任何news_headlines news对象,请将其从spots中删除。返回过滤后的斑点。

如有任何指导,我们将不胜感激。。

谢谢。

如果你想从Spots中挑选10个,然后过滤掉news_headlines中的那些,它会是这样的(警告:VB中的LINQ语法完全来自内存):

Dim spots1 = (From n In news_list Take (10) Select n)
Dim spots2 = (From n in spots1 Where Not news_headlines.Contains(n) Select n)

如果你想过滤掉news_headlines中的那些,然后选择十个,它应该是这样的:

Dim spots1 = (From n In news_list Where Not news_headlines.Contains(n) Select n)
Dim spots2 = (From n in spots1 Take (10) select n)

当然,您可以将这两个查询组合起来。注意,我假设news_headlines不为空。我还假设您的新闻项目是相同的对象实例或实现IEquatable<T>

我认为stackoverflow中也有类似的问题。无论如何,您可以使用"Intersect"来获取点和标题中的元素,并将它们从点列表中删除。

代码应该很琐碎,但我已经有一段时间没有使用VB.net了,对不起。

相关内容

  • 没有找到相关文章

最新更新