Этот код почти не имеет смысла;Вы вызываете метод, который возвращает массив строк, который затем преобразуете в список, который затем добавляете один за другим в другой список.
В любом случае, я думаю, что вы тогда сделали что-то вроде set DisplayMemberPath или BindingPathв @Length, и теперь ваш элемент управления списком показывает вам длину всех строк в списке - выполните отладочную печать торговцев [0], и это будет строка длиной 20 символов.Привязка данных обычно привязывается только к свойствам, а строка имеет только одно свойство.Если вы хотите связать с самой строкой, вам, вероятно, нужно связать столбец с путем .
Если вы хотите показать список имен папок, вам нужно позвонить
merchants.Add(Path.GetFileName(i.TrimEnd(Path.DirectorySeparatorChar)));
Когда GetFilename используется на пути, подобном c:\temp\myfolder
, он возвращает MyFolder
, Trim () существует, потому что если вы вызываете GetFilename на c:\temp\myfolder\
, вы получаете пустую строку, потому что онабуквально просто возвращает все после последнего слэша.(Что ничего)