FilePrefixList.Any(s => FileName.StartsWith(s))
Run Code Online (Sandbox Code Playgroud)
我可以s在这里获得价值吗?我想显示匹配的字符串.
Tim*_*ter 25
Any仅确定是否存在匹配,它不返回除了之外的任何内容,bool并且它需要执行查询.
你可以使用Where或First/ FirstOrDefault:
string firstMastch = FilePrefixList.FirstOrDefault(s => FileName.StartsWith(s)); // null if no match
var allMatches = FilePrefixList.Where(s => FileName.StartsWith(s));
string firstMastch = allMatches.FirstOrDefault(); // null if no match
Run Code Online (Sandbox Code Playgroud)
Any如果所有你需要知道的是否匹配,那么很好,否则你可以FirstOrDefault用来获得第一场比赛或null(如果是参考类型).
由于Any需要执行查询,因此效率较低:
string firstMatch = null;
if(FilePrefixList.Any(s => FileName.StartsWith(s)))
{
// second execution
firstMatch = FilePrefixList.First(s => FileName.StartsWith(s));
}
Run Code Online (Sandbox Code Playgroud)
如果您想将所有匹配项放入单独的集合中,如List<string>:
List<string> matchList = allMatches.ToList(); // or ToArray()
Run Code Online (Sandbox Code Playgroud)
如果要输出所有匹配项,可以使用String.Join:
string matchingFiles = String.Join(",", allMatches);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 15
没有Any,没有......这只是为了确定是否有任何匹配,这就是它返回的原因bool.但是,您可以使用FirstOrDefault谓词:
var match = FilePrefixList.FirstOrDefault(s => FileName.StartsWith(s));
if (match != null)
{
// Display the match
}
else
{
// Nothing matched
}
Run Code Online (Sandbox Code Playgroud)
如果要查找所有匹配项,请Where改用.
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |