c# - 从包含特定字符串 c# 的列表中捕获项目
问题描述
假设我有一个不断更新的列表框,其中包含例如:
Apple Juice -- 18 EURO
Orange Juice -- 14 EURO
Juice Berry -- 12 EURO
Juice Dates-- 56 EURO
我有一个文本框,我会在其中写下这个词:
Apple
Dates
我想要的输出是:
Apple Juice -- 18 EURO
Juice Dates -- 56 EURO
为了消除混淆,我正在尝试构建一个过滤器,其中我有很多果汁类型,并通过输入一个有利的果汁类型,它会从大列表中搜索果汁类型并将它们过滤并将它们显示到一个独立的有利列表中
到目前为止我已经尝试过:
MyClass result = list.Find(x => x.Id == "Apple");
解决方案
winforms 中的文本框有一个Lines属性,返回一个字符串数组。使用它,你可以过滤
string[] terms = myTextBox.Lines;
var result = list.Find(x => terms.Contains(x.Id));
或者
var result = list.Find(x => Array.FindIndex(terms, t => t == x.Id) != -1);
Find
仅返回找到的第一个项目。您可以使用FindAll
返回包含所有匹配项的列表。
推荐阅读
- linux - 如何使用文件名日期范围 tar gz 文件?
- java - 编写一个程序来检查一个二维整数数组是否是一个正方形数组,这意味着它的行和列是否相等。我的代码如下
- mysql - 有没有办法在 Google Cloud SQL 中模拟 MySQL 数据库超时?
- java - Spring Boot 中 Repository 的默认“findById”函数的运行时是什么?
- python - 启动 shell 时使用 python-dotenv 在 django 应用程序中运行 .env 文件
- gcc - gcc/g++ 中各种优化级别之间到底有什么区别?
- r - 如何制作一个矩阵,每行只有两个数值,其他地方有 NA?
- hibernate - Spring Boot 2 应用程序上下文 xml 休眠属性
- python - 我是否必须为每个请求验证 JWT 令牌?
- winapi - MFC:在静态控件上更改字体大小不起作用?