Как я могу показать только часть строки в выпадающем списке - PullRequest
0 голосов
/ 25 марта 2019

Проблема, когда файлы загружаются в выпадающий список, имя которого начинается так же?Я хочу показать только первую букву строки, разделенную _

Снимок экрана

private void frm_main_Load(object sender, EventArgs e)
    {
        string path = @"C:\Meteo";

        if (Directory.Exists(path))
        {
            listBox1.Items.Clear();
            string[] files = Directory.GetFiles(path);

            string[] dirs = Directory.GetDirectories(path);

            foreach (string file in files)
            {       
                listBox1.Items.Add(Path.GetFileName(file));
                comboBox2.Items.Add(Path.GetFileName(file));
            }

            foreach (string dir in dirs)
            {
                listBox1.Items.Add(Path.GetFileName(path));
            }      
        }

        else

        {
            MessageBox.Show("Директорията Meteo не е октирта в системен диск 'C:\'");
            Application.ExitThread();
        }      
    }

1 Ответ

1 голос
/ 25 марта 2019

Если вам нужна первая буква "0_2019_01_23.dat" => "0", вы можете написать:

var formattedName = Path.GetFileName(file).Split('_').First();

Если вы хотите усечь "0_2019_01_23.dat" => "23.dat", вы можете написать:

var formattedName = Path.GetFileName(file).Split('_').Last();

Если вы хотите взять различные детали "0_2019_01_23.dat" => "2019_01", вы можете написать:

var formattedName = string.Join("_", Path.GetFileName(file).Split('_').Skip(1).Take(2));

Чтобы изменить порядок "0_2019_01_23.dat" => "23_2019", вы можете написать:

var parts = Path.GetFileNameWithoutExtension(file).Split('_');
var formattedName = string.Join("_", new []{parts[3], parts[1]});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...