需求:
将"11,21,31$12,22,32$13,23,33$14,24,34";
轉換為:"11,12,13,14$21,22,23,24$31,32,33,34";
分析:
其實就是如下的表格的列轉行:
11,21,31
12,22,32
13,23,33
14,24.34
... ...
11,12,13,14,1...
21,22,23,24,2...
31,32,33,34,3...
思路:将所有元素列出來,取定長間隔的元素即可,實作代碼:
using system;
using system.collections.generic;
namespace adas
{
class program
public static void main(string[] args)
string orgstring="11,21,31$12,22,32$13,23,33$14,24,34";
// 0,3,6,9
// 1,4,7,10
// 2,5,8,11
string[] orgstrarr=orgstring.split(new char[]{'$'},stringsplitoptions.removeemptyentries);
list<string >strlist=new list<string> ();
int rownum=orgstrarr.length;
int colnum=0;
foreach(string str in orgstrarr)
string[] itemarr=str.split(new char[]{','},stringsplitoptions.removeemptyentries);
colnum=itemarr.length;
foreach(string item in itemarr)
strlist.add(item);
}
for(int i=0;i<rownum-1;i++)
for(int j=i;j<strlist.count;j=j+colnum)
console.writeline(strlist[j]);
console.read();
for(int i=0;i<rownum-1;i++)
{
for(int j=i;j<strlist.count;j=j+colnum)
{
console.writeline(strlist[j]);
}
}