Re: [問題] 修改DataTable某列資料

看板C_Sharp (C#)作者 (洨魯)時間10年前 (2015/02/12 09:28), 10年前編輯推噓7(709)
留言16則, 4人參與, 最新討論串2/2 (看更多)
我是用方法二 方法一大量蒐尋效能一定不好 而且你如果用 For Loop尋訪 你也在找到時,break一下 建議方法二就對了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.150.132 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1423704500.A.450.html

02/12 09:32, , 1F
阿! 對吼 方法1忘了break 囧
02/12 09:32, 1F

02/12 09:33, , 2F
但方法2 我不知道該如何取獲得的RowIndex耶...
02/12 09:33, 2F

02/12 09:39, , 3F
謝謝您的回覆:D
02/12 09:39, 3F
如果是我的話 New一個DataTable (mDataTable) mDataTable.Columns.Add <---- 第一個欄位用id (loop值),後面用原本column名稱 把你原本資料加入Table 之後 Select 就能順便Get id(你要的index) ※ 編輯: magic704226 (39.9.150.132), 02/12/2015 10:32:26

02/12 11:09, , 4F
方法2不需要獲得RowIndex,用select取得的是row陣列
02/12 11:09, 4F

02/12 11:10, , 5F
把抓出來的陣列for each取代內容(可能有多個row符合條件)
02/12 11:10, 5F

02/12 11:12, , 6F
最後再下Datatable.AcceptChanges即可
02/12 11:12, 6F

02/12 11:25, , 7F
如果是要依照好幾個條件篩選時,方法一效能會比方法二好
02/12 11:25, 7F
我猜原PO要的是原始的index,不是選後的 ※ 編輯: magic704226 (39.9.150.132), 02/12/2015 12:41:44

02/12 14:08, , 8F
謝謝原PO及Ammenze大的回覆!
02/12 14:08, 8F

02/12 14:12, , 9F
我瞭解了原PO的方法^_^!!
02/12 14:12, 9F

02/12 14:13, , 10F
請問Ammenze大的方法 要如何透過foreach來取代內容呢?
02/12 14:13, 10F

02/12 14:15, , 11F
我的情況下 在搜尋的該column不會有重複的字串
02/12 14:15, 11F

02/14 22:12, , 12F
直接改select出的datarow[]啊
02/14 22:12, 12F

02/14 22:13, , 13F
foreach datarow r in datarow[]
02/14 22:13, 13F

02/14 22:14, , 14F
r[1] = "xxxx"....
02/14 22:14, 14F

02/25 13:36, , 15F
謝謝樓上解答!! 我會試試看!!
02/25 13:36, 15F

03/19 01:17, , 16F
我有相同疑問 select 出來是shallow copy? 可以直接改?
03/19 01:17, 16F
文章代碼(AID): #1Kt06qHG (C_Sharp)
文章代碼(AID): #1Kt06qHG (C_Sharp)