看板 C_Sharp 關於我們 聯絡資訊
※ 引述《don750421 (1+1≠2)》之銘言: : 請問一下,List<string> 與 string[,] 要如何互轉呢?? : 問題一: List<string> => string[,] : 假設有個List<string> 如下 : List<string> lsName = new List<string>(); : lsName.Add("John,Tom,Kevin,Tony"); : lsName.Add("Jane,Candy,Amy,Sandy"); : lsName.Add("Tomas,Tommy,Michael,Mark"); : 希望可以轉成以下這種二維陣列 : [0,0][1,0][2,0][3,0] : [0,1][1,1][2,1][3,1] : [0,2][1,2][2,2][3,2] : 除了for 迴圈外,能夠透過LINQ或Lamdba或其他方式做到嗎? : 問題二: : 假設有個二維陣列如上,有辦法在返回成List<string>嗎? : 也就是輸出成... : List<string> lsName = new List<string>() : { : "JohnTomKevinTony","JaneCandyAmySandy","TomasTommyMichaelMark" : }; : 先謝謝各位前輩@@ 下班吃飽了 手癢寫一下@@" 還請各位前輩指教0rz 問題一: public void ListToArray() { var lsName = new List<string> { "John,Tom,Kevin,Tony", "Jane,Candy,Amy,Sandy", "Tomas,Tommy,Michael,Mark" }; var lsNameContainArray = new List<string[]>(); lsName.ForEach(names => { lsNameContainArray.Add(names.Split(',')); }); var resultArray = lsNameContainArray.ToArray(); Assert.IsType(typeof(string[][]), resultArray); } 問題二:(再次修正XD) public void ArrayToList() { var nameArray = new[] { new []{"John","Tom","Kevin","Tony"}, new []{"Jane","Candy","Amy","Sandy"}, new []{"Tomas","Tommy","Michael","Mark"} }; var nameList = nameArray.ToList(); var resultList = new List<List<string>>(); nameList.ForEach(names => { resultList.Add(names.ToList()); }); Assert.IsType<List<List<string>>>(resultList); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.17.178 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1430143532.A.A0A.html ※ 編輯: J002 (118.165.17.178), 04/27/2015 22:06:10
GoalBased: msdn上面找不到Assert.IsType 是幹嘛用的 04/27 23:19
Litfal: 斷言檢查,通常用在單元測試裡面 04/27 23:44
是單元測試沒錯 小弟用xUnit
GoalBased: 謝謝樓上 學習了! 04/28 00:52
don750421: 感謝前輩回復,問題二先測一下,好像是錯誤的@@ 04/28 01:59
don750421: 我需要的是string[,] to List.. 04/28 01:59
don750421: 可是您寫的是List<string> to List<string>.. 04/28 01:59
已更改,您再看看這樣對不對~
leicheong: Jagged array和Multi-dimensional array是不同的. 04/28 07:46
leicheong: 多維陣列要求同一維度的最長度相同, 因此只能靠取各維 04/28 07:49
leicheong: 最大值把Array new出來後, 再用nested loop把element 04/28 07:50
leicheong: copy進去. 04/28 07:50
了解… 感謝前輩指導<(_ _)> ※ 編輯: J002 (203.67.9.208), 04/28/2015 09:40:15
don750421: 感謝lei前輩補充,這兩種陣列真的是有差異... 04/28 20:01
don750421: 搜尋網路上一些教學或是程式碼,都將這兩者統稱為 04/28 20:01
don750421: 2維陣列,似乎是蠻大的認知錯誤... 04/28 20:01
don750421: 感謝J002前輩回覆,問題二的部分是二維陣列@@ 04/28 20:03
don750421: 一維直接用ToList()就能轉過去了@@ 04/28 20:04
don750421: 我需要的答案應該是... 04/28 20:05
don750421: List<string> lsName = new List<string>{ 04/28 20:06
don750421: "[0,0][1,0][2,0][3,0]", 04/28 20:06
don750421: "[0,1][1,1][2,1][3,1]", 04/28 20:06
don750421: "[0,2][1,2][2,2][3,2]"} 04/28 20:06
don750421: 也就是把二維陣列組成以上的List<string>... 04/28 20:07
吃飽後又改了一次~ 您再看看對了嗎XD" 還是我多轉了一次List<string>? ※ 編輯: J002 (118.165.112.69), 04/28/2015 21:39:05