我通过调用GetDirectories()
获得了追随者的目标C:\应用\ 20090331 \ C:\程序\ 20090430 \ C:\程序\ 20090531 \ C:\程序\ 20090630 \ C:\程序\ 20090731 \ C:\应用\ 20090831 \
我想要20090531和20090731之间的目录,我怎么能通过Linq做到这一点? 谢谢!
答案 0 :(得分:3)
.Where(x => x>“c:\ app \ 20090531”&& x<“c:\ app \ 20090731”)。ToList()
如果您希望将其列入清单,则会收费。如果IEnumerable合适,请将其关闭。
答案 1 :(得分:1)
在最小和最大目录名称(作为字符串)与x(作为字符串)之间使用LINQ .Where 语句和 String.Compare 。
不要理会使用blah .Parse ,只是进行字符串比较 - 你的目录名称仍然是数字,所以当你只能使用直接值比较时,没有使用解析每个。
var query = directories
.Where(x => {
return (String.Compare(x, @"c:\app\20090531") > 0 && String.Compare(x, @"c:\app\20090731") < 0)
});
答案 2 :(得分:0)
我得到了:运营商'&gt;'不能应用于'string'和'string'
的操作数类型答案 3 :(得分:0)
var query = directories
.Where(d => {
int directoryNumber = int.Parse(d.Replace(@"c:\app\", string.Empty)
.Replace("\\", string.Empty));
return directoryNumber > 20090531 && directoryNumber < 20090731;
});
如有必要,您还可以将其转换为DateTime。
编辑:显然是stackoverflow,或者它使用的任何解析都不喜欢我的逐字字符串。