Re: [問題] List<T>相關問題

看板C_Sharp作者 (哉一)時間10年前 (2014/05/27 11:17), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《doom0819 (哉一)》之銘言: : 1: List<T>是否可以像陣列用ref傳進method,或是有其他方法可以傳整個List<T>進去? : 2:我用NPOI讀取Excel檔時,若是遇到空的Cell時,如果加上strcell=hr.GetCell(i)==null?"0":hr.GetCell(i).ToString();就可以克服NPOI將該格視為null的情況,但若用List的.Add方法來宣告大小並讀取時,就會遇到讀不到空的格子的問題,所以也不會新增大小吧。 : 我有查過MSDN了,但我目前好像沒有辦法解決,煩請版上高人解惑。麻煩了,感恩。 要貼程式碼,所以用回文的方式,請見諒 我原本用陣列來存放Excel讀進來的Cells,但後來考慮避免預先宣告陣列大小而導致超用,所以改用List<T>來存放。 在NPOI的方法裡面,如果是用陣列來存,如果加上「strcell = hr.GetCell(i) == null ? "0" : hr.GetCell(i).ToString();」這行,就可避免原本Cells沒有輸入資料被辨別為null的情況,但如果改用List<T>的.add方法來改變陣列大小的時候,就會因為Cells裡面沒有資料,而不會新增,不知道這樣的問題有沒有可以解決的辦法,麻煩指教了。感恩! ---------------- 原本的可以work的程式碼如下,如果把ARRAY[j]=strcell這一行改寫成ARRAY.add(strcell);,就會受到Cell本身有沒有存資料影響,如果沒有存資料,就不會宣告。 string strFilePath = string.Format("C:\\Users\\apple\\Dropbox\\gdbus_data\\work_hour.xlsx"); XSSFWorkbook wk; FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.ReadWrite); wk = new XSSFWorkbook(fs); XSSFSheet hst; XSSFRow hr; string strcell; for (int k = 0; k < 1; k++) //共有1個sheet { hst = (XSSFSheet)wk.GetSheetAt(k); string strSheetname = hst.SheetName; //Get Sheet Name for (int j = 1; j <= hst.LastRowNum; j++) //row { hr = (XSSFRow)hst.GetRow(j); for (int i = 0; i < hr.LastCellNum; i++) //column { //避免資料格空掉 strcell = hr.GetCell(i) == null ? "0" : hr.GetCell(i).ToString(); if (i == 0) { ARRAY[j] = strcell; } } row_count = j; } fs.Close(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.9.28 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1401160643.A.76C.html

05/27 19:53, , 1F
你只判斷每列的第一格?(i == 0)?
05/27 19:53, 1F

05/27 21:31, , 2F
沒有,有讀很多格,但怕占篇幅所以刪減,讀到i==7
05/27 21:31, 2F

05/28 11:28, , 3F
首先strcell已經保證有值了不是嗎? cell本身有沒有資料有差?
05/28 11:28, 3F

05/28 11:29, , 4F
再來List.add可以加null值,跟有沒有資料沒關係
05/28 11:29, 4F

05/28 11:40, , 5F
你是從哪邊得到List.add沒有新增資料的
05/28 11:40, 5F

05/28 11:44, , 6F
最後"宣告"這個字不是這樣用的...
05/28 11:44, 6F

05/29 00:03, , 7F
我在if裡面用msgbox印計數器的值發現的。我太菜了,可能
05/29 00:03, 7F

05/29 00:03, , 8F
用錯講法,sorry><
05/29 00:03, 8F

05/29 11:01, , 9F
計數器? List.Count? 同時array和list兩個都放,比較一下?
05/29 11:01, 9F
文章代碼(AID): #1JX0F3Ti (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1JX0F3Ti (C_Sharp)