想象一下我有这样的代码
public List<string> X我装载下列物品:
launch.txt reset.txt 民歌名 异类名称
我知道我可以通过调用X.Contains("value")来查找列表中的某一项。
但是如果我传递"foldername/file.txt“呢?
检查字符串是否以X列表中的任何条目开头最简单的方法是什么?理想情况下,我希望捕获“foldername/”中的所有文件。子目录也是如此,所以我想使用StartWith。
LINQ是解决这个问题的正确方法吗?
发布于 2013-07-10 21:42:25
使用Enumerable.Any扩展方法,它返回true当且仅当给定谓词返回true的序列中有某些项。
string search = "foldername/file.txt";
bool result = X.Any(s => search.StartsWith(s));当然,StartsWith可能并不适合您的场景。如果在foldername2中只有一个名为X的文件夹呢?我想,在这种情况下,你不会希望result成为true的。
如果要在X中获取与搜索匹配的项,可以执行以下操作。
string search = "foldername/file.txt";
IEnumerable<string> result = X.Where(s => search.StartsWith(s));如果希望在X中获得与搜索匹配的第一项,可以执行以下操作。
string search = "foldername/file.txt";
string result = X.FirstOrDefault(s => search.StartsWith(s));https://stackoverflow.com/questions/17581374
复制相似问题