获取文件扩展名以填充到C#中的ComboBox

Rek*_*kcs 3 c#

所以我有一些imagens文件夹中像许多扩展.ico,.png,.jpg等,我已经填充它变成一个comboBox使用此代码:

string caminho = @"C:\Users\User1\Desktop\Test\";
DirectoryInfo dir = new DirectoryInfo(caminho);
FileInfo[] fi = dir.GetFiles();
foreach (var ficheiro in fi)
{
    string caminhoF = caminho + ficheiro.ToString();
    string extension = Path.GetExtension(caminhoF);
    comboBox1.Items.Add(extension);
}
Run Code Online (Sandbox Code Playgroud)

代码将获取此路径中的所有现有扩展并将其放在comboBox,但它显示如下:

.ico
.ico
.ico
.png
.png
.jpg
.jpg
Run Code Online (Sandbox Code Playgroud)

我想简单地显示每个现有的扩展名,例如对它们进行分组.

你能帮帮我吗?

Nko*_*osi 6

您可以从中获取文件扩展名FileInfo.您还可以使用Linq Distinct()获取唯一扩展.

string caminho = @"C:\Users\User1\Desktop\Test\";
DirectoryInfo dir = new DirectoryInfo(caminho);
var extensions = dir.GetFiles().Select(fi => fi.Extension).Distinct();
foreach (var extension in extensions) {
    comboBox1.Items.Add(extension);
}
Run Code Online (Sandbox Code Playgroud)