首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ inner - inner集合包含字符串

LINQ inner - inner集合包含字符串
EN

Stack Overflow用户
提问于 2020-11-05 03:26:29
回答 2查看 35关注 0票数 0

假设我有以下集合:

代码语言:javascript
复制
ONE
- Banana
- Mango

TWO
- Apple
- Mango

THREE
- Orange
- Pear

我只想获取其中包含芒果的集合,例如:

代码语言:javascript
复制
ONE
- Banana
- Mango

TWO
- Apple
- Mango

下面的示例仍然返回一个包含3个项的集合:

代码语言:javascript
复制
List<Order> list = new List<Order> {
                new Order { Id = 1, Name = "ONE", Items = new List<Items> { new Items { Id = 1, Nama = "Banana" }, new Items { Id = 2, Nama = "Mango" } }},
                new Order { Id = 1, Name = "TWO", Items = new List<Items> { new Items { Id = 1, Nama = "Orange" }, new Items { Id = 2, Nama = "Mango" } }},
                new Order { Id = 1, Name = "THREE", Items = new List<Items> { new Items { Id = 1, Nama = "Pear" }, new Items { Id = 2, Nama = "Chery" } }},
            };

var result = list.Where(x => x.Items.Any(y => !y.Nama.Equals("Mango"))).ToList();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-05 03:33:00

您将获取其中至少有一项不是Mango的所有集合。尝试删除"!“。

代码语言:javascript
复制
var result = list.Where(x => x.Items.Any(y => y.Nama.Equals("Mango"))).ToList();
票数 1
EN

Stack Overflow用户

发布于 2020-11-05 03:35:21

你就快到了!试着读出你的代码的逻辑,以理解它在做什么。

你内部的Where子句的逻辑是‘检查列表,如果有任何条目不等于"Mango",那么我们将保留该列表’。按照这种逻辑,列表中的每个条目都有一个列表,其中的条目不等于"Mango“。

颠倒您的逻辑,使其显示为‘检查列表,如果有任何条目等于"Mango",则我们保留该列表’。

var result = list.Where(x => x.Items.Any(y => y.Nama.Equals("Mango"))).ToList();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64686487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档