c# - 使用 LINQ 如何检查一个数组和另一个数组中的数字实例?

标签 c# arrays linq contains

我有一个名为 myItemsMyItem 对象列表,如下所示:

public class MyItem{
    public int[] category_ids;
    public string name;
}

List<MyItem> myItems;

我想使用所选类别列表来过滤对象列表,以便过滤后的列表包含任何过滤器类别 ID:

int[] filter = { 1, 5, 6, 9 };

如何在一行中使用 LINQ 来做到这一点? (如果有可能的话,我无法理解它!) 我想象的大概是这样的:

IEnumerable<MyItem> filtered = myItems.Where(item => item.category_ids.Contains(xxx));

最佳答案

var filtered = myItems.Where(x => x.category_ids.Intersect(filter)
                                          .Any());

关于c# - 使用 LINQ 如何检查一个数组和另一个数组中的数字实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12726876/

相关文章:

php - MySQL/PHP如何在WHERE子句中包含数组

.net - 构建同步框架 DAL 的正确方法

c# - 单例设计模式中的静态构造函数

java - 递归迷宫求解器方法问题

使用通用 T 作为按钮的 C# 委托(delegate)

java - Java 中的字符数组迭代 - 改进算法

c# - 在 LINQ 查询中创建嵌套在对象中的列表

c# - LINQ 方法的运行时复杂性 (Big-O) 有哪些保证?

c# - C# 中的编译器错误 CS0120

c# - 如何使用 Roslyn 获取方法调用/类声明的全名路径