首页 > 解决方案 > 按特定顺序从另一个字符串中查找字符串数组中的所有字符串 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();

标签: linqmodel-view-controller

解决方案


尝试以下操作:

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();

推荐阅读