我有一个这样的列表:
item.Add("a");
item.Add("as");
item.Add("b");
item.Add("fgs");
item.Add("adsd");
Run Code Online (Sandbox Code Playgroud)
如何查找以(例如)"a"开头的所有项目?
这个"a"不是一些硬编码的字符串,所以我需要一个为每个字符串执行此操作的函数.
我尝试使用FindAll,但我没有弄清楚它是如何工作的.
Br,Wolfy
如果用"开头"表示第一个字符,那么:
item.FindAll(i => i[0] == 'a');
Run Code Online (Sandbox Code Playgroud)
如果你的意思是一个字符串(可能不是1个字符),那么:
item.FindAll(i => i.StartsWith("a"));
Run Code Online (Sandbox Code Playgroud)
如果您想要不同的比较,例如不区分大小写,基于语言环境等,那么请执行相关的IndexOf,例如:
item.FindAll(i => i.IndexOf("a", StringComparison.CurrentCultureIgnoreCase) == 0);
Run Code Online (Sandbox Code Playgroud)
以上所有内容都可以很容易地使用相关的char或字符串变量或参数.
如果你并不需要通过一个列表提供额外的属性和方法,那么这将是更有效地使用Where比FindAll为FindAll创建一个新的列表,并在所有一次这样做,但Where因为它是通过迭代将枚举匹配结果.
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |