我有一个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#。
答案 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);