过滤字符串数组,只获取与搜索字符串匹配的字符串

时间:2015-07-15 07:32:20

标签: c# arrays string

我有一个string数组,我希望从中获取一个过滤后的数组,该数组仅包含与搜索到的字符串匹配的字符串。

string[] myValues = {"School.Report1", "School.Report2", "School.Report3", "House.Report1", "House.Report2"};
string myFilter = "School";
string[] filteredValues = myValues.Filter(myFilter); // or something similar

filteredValues必须仅包含:"School.Report1", "School.Report2", "School.Report3"

- 编辑 -

如果可能的话,我更喜欢非LINQ方法。否则我知道这个问题可以通过这里提出的解决方案来回答:filter an array in C#

1 个答案:

答案 0 :(得分:1)

如果你不能使用LINQ,你仍然可以使用Array.FindAll

string[] filteredValues = Array.FindAll(myValues, s => s.Contains(myFilter)); 

或者您可能只想保留第一个令牌(以点分隔)为School的所有字符串:

string[] filteredValues = Array.FindAll(myValues, s => s.Split('.')[0] == myFilter);