Linq C#检查两个数组,如果第二个数组中一个或多个值与第一个数组匹配

时间:2018-09-25 03:42:57

标签: c# arrays mongodb linq

我有两个数组array_Aarray_Barray_A来自数据库,array_B是用户从前端选择的值。因此,我必须在两个数组之间进行匹配和过滤,如果array_A包含来自array_B的一个或多个值,那么考虑为真,将采用db数据。我使用的是 MongoDB 。下面是我的代码:

var builder = Builders<Order>.Filter;
var filter = FilterDefinition<Order>.Empty;

//db data value may look like this
//db data 1) => selectedItems:["item_B","item_A","item_S"]
//db data 2) => selectedItems:["item_S","item_Z"]
//db data 3) => selectedItems:["item_C","item_D"]

//frontend value
string[] selectedItems = ["item_A","item_Z"];

filter = filter & builder.Where(c => c.selectedItems.Any(x => selectedItems.Contains(x)));

结果应采用data 1data 2,因为data 3的值与前端值不匹配,如果我错了,请纠正我。

0 个答案:

没有答案