Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WHERE条件返回文件列表的最短方法_C#_List - Fatal编程技术网

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")