2013-01-14 122 views
1

我有一個包含字符串值的列表。我需要修剪前導值和結尾值。下面是代碼:修剪列表中的字符串

 using EnterpriseDT.Net.Ftp; 
     public List<FTPFile> FileList = new List<FTPFile>(); 

     FTP = new FTPConnection() { ServerAddress = _host, UserName = _user, Password = _password }; 
     FTP.Connect(); 
     FTP.TransferType = FTPTransferType.BINARY; 
     FTP.ChangeWorkingDirectory(_as400_directory); 
     FTP.LocalDirectory = _local_directory; 
     FileList.AddRange(FTP.GetFileInfos()); 
     FTP.Close(); 

文件列表列表包含以下示例值:

test 123 11/01/12 *STMF File1.csv somegarbagevalues 
test 123 11/01/12 *STMF File2.csv somegarbagevalues 
test 123 11/01/12 *STMF File3.csv somegarbagevalues 

我需要做的就是捕捉網上的文件名(如File1.csv,File2.csv ..。 。)當我執行FileList.AddRange語句時,是否有辦法修剪不需要的值而不循環列表或修剪?

+0

它看起來像API返回豐富的對象的列表,所以你爲什麼不只是使用name屬性?請參閱http://www.enterprisedt.com/products/edtftpnet/doc/api/EnterpriseDT.Net.Ftp.FTPFileMembers.html –

回答

6

LINQ使得這種簡單:

FileList.AddRange(FTP.GetFileInfos().Select(x => x.Trim())); 

其中Trim()將是對FTPFile的方法(可能的擴展方法),其與修整的文件名返回FTPFile

+0

如何而不是做一個修剪,我想選擇從FTPFile返回的文件名屬性GetFileInfos()?或者我必須通過FTPFile循環? – Nick

+0

@Nick:這取決於你需要什麼 - 我認爲你有一個類型爲'List '的變量,你需要這個。 *某些東西*必須循環,無論是在代碼中還是在LINQ中。目前尚不清楚你需要在這裏實現什麼。 –

1

FTPFile是一個類,有一個屬性「名稱」。您可能正在查看一次爲您提供所有屬性的FTPFile類的ToString()實現。

參見: http://www.enterprisedt.com/products/edtftpnet/doc/api/EnterpriseDT.Net.Ftp.FTPFileMembers.html

只需使用:

foreach(FTPFile f in FileList) 
{ 
    string name = f.Name; 
    // Do whatever you want with name. 

} 
+0

謝謝。無論如何要訪問我創建的現有FileList中的名稱?或者我創建一個新列表並將其添加到新列表中,因爲我正在循環。 'FileList.AddRange(FTP.GetFileInfos()); foreach(FileFile中的FTPFile){string name = f.Name; }' – Nick

+0

Just use: var stringList = new List (); stringList.AddRange(FileList.Select(f => f.Name)); – dperez