2014-03-31 77 views
1

我有一些文件路徑存儲在列表中,需要將它們附加到電子郵件。但是,我怎樣才能訪問我的列表項的值(在我的情況下:文件路徑作爲字符串值)?如何獲取列表的字符串值<t>項目

下面是代碼:

List<string> filesToSend = new List<string>(); 
filesToSend = (List<string>)Session["filesListForFilesToSend"]; 

for (int i = 0; i < filesToSend.Count; i++) 
     { 
      //message.Attachments.Add(filesToSend[i].????????????????????);     
     } 

在此先感謝

+2

那麼,'message.Attachments.Add(...)'作爲參數是什麼?哎呀,這是第一個API嗎?這裏的'消息'是什麼? (因爲我知道至少有兩個API匹配)。陣列中有什麼?文件名?或者你想作爲文本附件發送的實際字符串? –

+0

我認爲文件系統中文件的路徑是字符串。 – user1814545

+0

爲什麼你要創建'List ()'的新實例,然後立即覆蓋下一行的值? – freefaller

回答

3

filesToSend [I]會返回你想要

+2

我不明白爲什麼我得到反對票? – Murdock

2

路徑字符串試試這個

foreach(string EachString in filesToSend) 
{ 
    message.Attachments.Add(EachString) 
} 
1

首先,在會話中讀取列表後不需要先列出實例,只需:

List<string> filesToSend = (List<string>)Session["filesListForFilesToSend"]; 

當您訪問和Listindex您將獲得泛型類型的對象。你可以用很多方式做到這一點,對樣本:

使用for循環:

for (int i = 0; i < filesToSend.Count; i++) 
    message.Attachments.Add(filesToSend[i]);     

foreach

foreach(string file in filesToSend) 
    message.Attachments.Add(file); 

while

int i = filesToSend.Lenght; 
while(i--) 
    message.Attachments.Add(filesToSend[i]); 

我會用foreach聲明,但while會給你更多的表現(請記住你將以相反的順序循環)。

0

錯誤不是我試圖從列表中取出字符串的方式。錯誤是我試圖將它附加到我的消息。

for (int i = 0; i < filesToSend.Count; i++) 
     { 
      string filePath = filesToSend[i]; 
      Attachment attached = new Attachment(filePath); 
      attached.Name = filePath; 
      message.Attachments.Add(attached); 
     } 

這就是它爲我工作的方式。謝謝大家

相關問題