首页 > 解决方案 > 从包含特定字符串 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"); 

标签: c#arrayslistboxitems

解决方案


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返回包含所有匹配项的列表。


推荐阅读