Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用LINQ从另一个列表(对象)中删除匹配列表(对象)_Asp.net_Vb.net_Linq - Fatal编程技术网

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

Asp.net 使用LINQ从另一个列表(对象)中删除匹配列表(对象),asp.net,vb.net,linq,Asp.net,Vb.net,Linq,我很难弄清楚如何完成问题标题中列出的任务 基本上,我有一个“News”对象列表,定义如下: Dim news_list As List(Of News) = myNamespcae.News.ListNews() 根据条件,我有另一个“新闻”对象列表,如下所示: Dim news_headlines As List(Of News) = myNamespace.News.getHeadlines() 然后,我有'点'再次作为名单(新闻)作为 我正在努力完成; 如果新闻标题不是空的,如果spo

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

基本上,我有一个“
News
”对象列表,定义如下:

Dim news_list As List(Of News) = myNamespcae.News.ListNews()
根据条件,我有另一个“新闻”对象列表,如下所示:

Dim news_headlines As List(Of News) = myNamespace.News.getHeadlines()
然后,我有'点'再次作为名单(新闻)作为

我正在努力完成; 如果新闻标题不是空的,如果spots中存在任何新闻标题新闻对象,请将其从spots中删除。返回过滤点

如蒙指导,不胜感激


谢谢。

如果您想从
中选择十个,然后过滤掉
新闻标题
中的内容,它会是这样的(警告:VB中的LINQ语法完全来自内存):

如果您想过滤掉
新闻标题中的内容,然后选择十个,它将如下所示:

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)

当然,您可以组合这两个查询。注意,我假设
新闻标题
不为空。我还假设您的新闻项要么是相同的对象实例,要么是实现
IEquatable

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


代码应该很简单,但很抱歉,我已经有一段时间没有使用VB.net了。

谢谢你,安,我想删除所有新闻标题,并从新闻中删除它们_list@Emin那么您想更改
新闻列表的内容
?或者干脆把
新闻标题
的内容从最后出现在
的标题中排除掉?好吧,看来我引起了混乱。基本上,新闻列表和新闻标题都是(MyNewsObject的)列表,所以它们的类型相同。我想要的是创建另一个列表,其中包含新闻列表中的所有项目,不包括新闻标题中的项目。。。因此,把斑点看作是一种疾病;spots=news\u list-news\u headlines我认为我的第二个代码片段应该做你想做的事情(必要时修改语法!)L我无法让你的代码工作。我就是这样让它工作的:Dim ids=New HashSet(整型)(news_headlines.Select(Function(x)x.NewsID)),如果ids.Count>0,那么spots=news_list.Where(Function(x)Not ids.Contains(x.NewsID))。如果出现,则执行(10)End,但我不明白为什么代码没有给出所需的结果。
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)
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)