如何从包含一些特定文本的数组中获取一些元素并且不重复它?

时间:2014-08-14 08:31:15

标签: c# arrays string

我有一个文件路径数组,我想创建只包含paths_after数组中的uniqe文件的数组。文件总是从" OpenShop _"。

开始

示例:C:\ aaa \ OpenShop_F.dll; C:\ AAA \ VVV \ OpenShop_F.dll; C:\ AAA \ OpenShop_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_F.dll C:\ AAA \ OpenShop_E.dll

我有结果: Result

我不想要相同的dll。我只想要一个OpenShop_Firefox.dll只有一个Chrome,只有一个IE。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下内容:

var endpaths = paths.Where(x=>Path.GetFileName(x).Contains("open_"))
                    .Select(x=>Path.GetFileName(x))
                    .Distinct()
                    .ToArray();

我们使用Path.GetFileName从路径x获取文件名。有关此问题的进一步文档,请查看here。然后我们看看我们得到的路径中是否包含所需的路径。最后我们得到不同的路径并将resutl转换为数组。