※ 引述《clipsjess (blue)》之銘言:
: 目前是想把這樣的資料
: 011324456789 =>0113 2445 6789
: 154678987987 =>1546 7898 7987
: 123456789564 =>1234 5678 9564
: 每一列 切成3個等分 每份長度4
: string[] srAry = new string[3];
: ArrayList a1 = new ArrayList();
: do
: {
: string sr2 = sr.ReadLine();
: if (sr2 == null)
: break;
: srAry[0] = sr2.Substring(0,4);
: srAry[1] = sr2.Substring(4,8);
: srAry[2] = sr2.Substring(8,12);
上面那三行應該寫成
srAry[0] = sr2.Substring(0, 4); // 後面的參數是 LENGTH
srAry[1] = sr2.Substring(4, 4);
srAry[2] = sr2.Substring(8, 4);
: a1.Add(srAry.Clone());
以上那一行等於複製一份 ARRAY[3] 到 ARRAYLIST 喔
所以如果你要讀出來可以用以下方是給你參考
foreach (String[] data in a1)
{
Console.WriteLine(String.Format("{0}-{1}-{2}",
data[0].ToString(), data[1].ToString(), data[2].ToString()));
}
: } while (true);
: =======================
: 然後想問一下 接下來要如何從arraylist a1裡面
: 去取出自己想要的值(譬如想要取出0113 這串字串)
--
http://teyou.blogspot.com
--
: 上網有看到JAVA是這樣的作法
: double[] ary1={0.212,0.156,0.111,0.915,0.444};
: double[] ary2={0.412,0.188,0.711,0.614,0.434};
: ArrayList<Object> list = new ArrayList<Object>();
: list.add(ary1);
: list.add(ary2);
: double[] a = (double[])list.get(0);
: System.out.println(a[0]);
: ==================
: 但c#裡面好像只有GetRange( 0, 5 )用法
: 如果用Console.WriteLine("{0}", a1.GetRange(0, 4));
: 他會顯示
: System.Collections.ArrayList+Range
: 無法顯示出想要的字串 0113
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.228.44
※ 編輯: teyou 來自: 140.118.228.44 (04/22 03:15)