linq - 按特定顺序从另一个字符串中查找字符串数组中的所有字符串 mvc
问题描述
例如我在一个数组中有这个字符串:
var name = new string[] { "john", "a", "doe" };
以及这些名称列表:
var names = new List<string>() { "John Alias Doe", "Johnny Dude Doe", "Jane Gal Doe", "John Wick A. Doe" };
结果将不包括“Johnny Dude Doe”,因为在“John”和“Doe”之间他的名字中没有“a”。
我正在使用 MVC 和 linq。目前我正在使用这个:
var nameresults = names.Where(ns => name.All(n => ns.Contains(n))).ToList();
解决方案
尝试以下操作:
var targetName = new List<string>() { "John", "A", "Doe" };
var namesToSearch = new List<string>() { "John Alias Doe", "Johnny Dude Doe", "Jane Gal Doe", "John Wick A. Doe" };
var results = namesToSearch.Where(x => targetName.All(y => x.Contains(y))).ToList();
字符串搜索区分大小写,这可能是您的代码的全部错误。
如果您希望它以不区分大小写的方式工作,请将查询更改为:
var targetName = new List<string>() { "john", "a", "doe" };
var namesToSearch = new List<string>() { "John Alias Doe", "Johnny Dude Doe", "Jane Gal Doe", "John Wick A. Doe" };
var results = namesToSearch.Where(x => targetName.All(y => x.ToLower().Contains(y.ToLower()))).ToList();
推荐阅读
- python - 使用 opencv 从视频中生成帧
- php - .user.ini 文件中设置的时区不适用
- html - css classname :not(:first-child) 选择器不排除其类名的第一个孩子
- c# - 在 WPF 中序列化和反序列化 UserControl 依赖属性
- azure - 如何在不停止 VM 的情况下更改 VM 公共 IP 地址
- reactjs - 更新使用 firebase 托管的 react 项目
- javascript - load 函数不加载新内容
- python - 如何解析numpy数组python中的数据点?
- python - 按时间箱/间隔计算并发用户会话
- javascript - 即使使用时区设置,两个日期之间的时间差也会返回错误