在c#中过滤字符串列表[重复]
Posted
技术标签:
【中文标题】在c#中过滤字符串列表[重复]【英文标题】:Filter a List of string in c# [duplicate] 【发布时间】:2020-11-13 08:11:33 【问题描述】:我有一个字符串列表
List<string> str = new List<string>
str.Add("test1");
str.Add("test2");
str.Add("test3");
经过一些处理后,此列表会转到某个服务,在该服务中列表会被修改,并且可以具有三个值“test1”、“test2”、“test3”中的任何一个或所有这些值。
我想根据以下字符串过滤此列表:“test1”、“test2”、“test3”,并将其转储到另一个对象中。
如何在不提供硬编码字符串值的情况下对其进行过滤?
我如何在 C# 中使用 Linq 做到这一点?
【问题讨论】:
你有没有尝试过?Where()
? filter this list based on the strings: "test1"," test2", "test3"
到底是什么意思?该列表已经包含这些值。预期的结果是什么?
如何在不提供硬编码字符串值的情况下做到这一点?
var someVar = "your search string"; bool listContains = str.Contains(someVar)
【参考方案1】:
不确定我是否 100% 理解您,但如果您需要查看列表的元素是否包含字符序列,请查看 LINQ 包含的内容。如果您需要示例,请看这里:https://dotnettutorials.net/lesson/linq-contains-method/
我在下面使用 Db,但想法有点相同,但语法相似。我想我必须先将其更改为 IQueryable。
使用这种方法创建一个方法,但不是 e.NewTextValue 而是将您的搜索字符串作为输入或其他内容,这是我的 XF 示例:
var searchList = strList.Where(x => x.Name.ToLower().Contains(e.NewTextValue.ToLower()) ||
x.CategoryName.ToLower().Contains(e.NewTextValue.ToLower()) || x.Comments.ToLower().Contains(e.NewTextValue.ToLower()) ||
x.SKU.ToLower().Contains(e.NewTextValue.ToLower()));
【讨论】:
以上是关于在c#中过滤字符串列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]