有没有办法检查一个字符串数组是否包含一个字符串子数组?数组中的元素不必与子数组中的元素完全相同,如果不是相同的字符串,则只能包含子数组的元素作为较大数组中字符串的一部分。
例如:
- 数组["ax", "by", "cz", "dw", "eg"] 包含子数组["A", "by", "E"]
- 数组["Ax"] 包含子数组["x"] 数组["Ax", "By"]
- 包含子数组["Ax", "By"]
我需要用 Linq 语法编写这个,我通过表单将子数组作为输入"文本"获取,并且我用 char(' ') 拆分它,另一方面,我从数据库字段中获得更大的数组作为字符串被 char(' ') 分割。
我想做的是在客户端上进行"搜索",以检查是否可以部分过滤我的数据库结果。
我通过输入文本字段从客户端浏览器获取我的子数组,这没关系,但我正在从数据库获得的每个结果创建数组:
var auctions = from o in db.auctions select o;
我需要传递 auction.productName.split(' ') - 这将是数组。
需要通过检查每个产品名称.拆分(' ') 是否包含 string[] 单词子数组来过滤拍卖变量。
如果你问的是检查是否: 子数组的所有项目都包含在"父"数组中,请尝试以下操作:
subArray.All(subItem => array.Any(item => item.Contains(subItem)));
您需要检查子数组中的所有元素是否至少在原始数组中具有匹配的字符串,其中 Sub 的字符串是原始字符串的子集。
不区分大小写:
string[] array = new string[] { "Ax", "By", "Cz", "Dw", "Eg" };
string[] subArray = new string[] { "A", "By", "E" };
bool result =
subArray.All(sub => array.Any
(item => item.IndexOf(sub, StringComparison.InvariantCultureIgnoreCase) >= 0));