C# 使用WHERE条件返回文件列表的最短方法
我正在使用以下代码读取给定位置的所有文件名-C# 使用WHERE条件返回文件列表的最短方法,c#,list,C#,List,我正在使用以下代码读取给定位置的所有文件名- return new DirectoryInfo(location).GetFiles().Select(o => o.Name).ToArray(); 但我想有一个特定文件类型的列表。达到以下目标的最佳捷径是什么- return new DirectoryInfo(location).GetFiles().Select(o => o.Name.Contains("csv")).ToArray(); 我已经尝试过这段代码,但显然它不起
return new DirectoryInfo(location).GetFiles().Select(o => o.Name).ToArray();
但我想有一个特定文件类型的列表。达到以下目标的最佳捷径是什么-
return new DirectoryInfo(location).GetFiles().Select(o => o.Name.Contains("csv")).ToArray();
我已经尝试过这段代码,但显然它不起作用。您需要的不是选择,而是位置:(和string.EndsWith而不是string.Contains)
您需要的不是选择,而是Where:(和string.EndsWith而不是string.Contains)
您必须使用下面提到的代码。 您可以检查文件的扩展名,而不是检查文件名
new DirectoryInfo("C").GetFiles().Where(o => o.Extension.Contains("csv")).ToArray();
您必须使用下面提到的代码。 您可以检查文件的扩展名,而不是检查文件名
new DirectoryInfo("C").GetFiles().Where(o => o.Extension.Contains("csv")).ToArray();
你为什么不使用一种新的方法呢
你为什么不使用一种新的方法呢
您不使用
选择进行筛选
-您使用何处进行筛选
。。。(就像在你的标题中一样!)你已经在你的问题标题中加入了Where
,那么为什么不在你的LINQ查询中加入Where
?你不使用Select
进行过滤-你使用Where
进行过滤。。。(就像在你的标题中一样!)你已经在你的问题标题中加入了Where
,那么为什么不在你的LINQ查询中加入Where
,但是在这种情况下,由于o
已经是FileInfo
了,您可以直接使用扩展名属性。好的,扩展名会更好。而且可能一个收费表更好。与其使用EndsWith,不如使用Extension。与其使用EndsWith
使用路径.GetExtension
,不如使用扩展名,但是在这种情况下,因为o
已经是FileInfo
了,所以您可以直接使用扩展名
属性。好的,扩展名会更好。很好,但不会扩展到对TimeStamnps等的过滤。很好,但不会扩展到对TimeStamnps等的过滤。
return new DirectoryInfo(location).GetFiles("*.csv")