C# 如何从包含特定文本的数组中获取一些元素,并且不复制这些元素?
我有一个文件路径数组,我想创建一个数组,在数组后面的路径中只包含uniqe文件。文件总是从“OpenShop”开始 示例:C:\aaa\OpenShop\u F.dll;C:\aaa\vvv\OpenShop\u F.dll;C:\aaa\OpenShop\u E.dll 我有这样的密码:C# 如何从包含特定文本的数组中获取一些元素,并且不复制这些元素?,c#,arrays,string,C#,Arrays,String,我有一个文件路径数组,我想创建一个数组,在数组后面的路径中只包含uniqe文件。文件总是从“OpenShop”开始 示例:C:\aaa\OpenShop\u F.dll;C:\aaa\vvv\OpenShop\u F.dll;C:\aaa\OpenShop\u E.dll 我有这样的密码: string[] paths = Directory.GetFiles(path, "OpenShop*.dll",SearchOption.AllDirectories); stri
string[] paths = Directory.GetFiles(path, "OpenShop*.dll",SearchOption.AllDirectories);
string[] endpaths;
endpaths = paths.Where(x=>Path.GetFileName(x).Contains("OpenShop_")).Distinct().ToArray();
我想在具有唯一文件名的endpaths数组元素中添加:c:\aaa\OpenShop\u F.dll
c:\aaa\OpenShop\u E.dll
我的结果是:
我不想要相同的dll。我只想要一个OpenShop\u Firefox.dll、一个Chrome和一个IE。您可以尝试以下方法:
var endpaths = paths.Where(x=>Path.GetFileName(x).Contains("open_"))
.Select(x=>Path.GetFileName(x))
.Distinct()
.ToArray();
我们使用
Path.GetFileName
从路径x
获取文件名。有关这方面的更多文档,请查看。然后我们看看所需的路径是否包含在我们得到的路径中。最后,我们得到不同的路径并将resutl转换为数组。这不是有效的C#语法。它看起来像php。数组后面的路径中有uniqe路径的唯一文件是什么?在这个解决方案中,我没有uniques文件路径。我有:“c:/vvv/open\u shop.dll c:/vvv/ggg/open\u shop.dll”我只想要一个“open\u shop.dll”文件。为什么不呢?我想,作为一个文件路径,您可以声明如下c:/vvv/open\u shop.dll。正确吗?请尝试更新的版本并让我知道。您要查找的不是唯一的路径,而是唯一的文件名。是的,是唯一的文件名。我解释得很糟糕。我在尝试这个解决方案,没问题。请试一试,让我知道。谢谢