Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 如何从包含特定文本的数组中获取一些元素,并且不复制这些元素?_C#_Arrays_String - Fatal编程技术网

C# 如何从包含特定文本的数组中获取一些元素,并且不复制这些元素?

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

我有一个文件路径数组,我想创建一个数组,在数组后面的路径中只包含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);            
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。正确吗?请尝试更新的版本并让我知道。您要查找的不是唯一的路径,而是唯一的文件名。是的,是唯一的文件名。我解释得很糟糕。我在尝试这个解决方案,没问题。请试一试,让我知道。谢谢