zoukankan
html css js c++ java
竖表转横表(支持多列)
在LoveCherry的blog中(
http://www.cnblogs.com/lovecherry/archive/2005/04/28/146749.html
)有一个竖表转横表的方法,但是只能支持只有一列的DataTable, 我改进了一下 可以支持多列.
public
DataTable MakeData(DataTable dt,
int
iSize,
int
[] iColumnID)
//
isize:每列行数 iColumnID 需要横向排列的列的序号数组
{
int
ColumnCount
=
iColumnID.Length;
int
itmp
=
dt.Rows.Count
%
iSize;
int
iColumn;
//
列数
if
(itmp
==
0
)
iColumn
=
dt.Rows.Count
/
iSize;
else
iColumn
=
dt.Rows.Count
/
iSize
+
1
;
DataTable newdt
=
new
DataTable();
for
(
int
i
=
0
;i
<
iColumn;i
++
)
{
for
(
int
j
=
0
;j
<
ColumnCount;j
++
)
{
string
aa
=
dt.Columns[iColumnID[j]].ColumnName
+
i;
DataColumn dc
=
new
DataColumn(dt.Columns[iColumnID[j]].ColumnName
+
i,dt.Columns[iColumnID[j]].DataType);
newdt.Columns.Add(dc);
}
}
for
(
int
i
=
0
;i
<
iSize;i
++
)
{
DataRow dr
=
newdt.NewRow();
for
(
int
j
=
0
;j
<
iColumn;j
++
)
{
for
(
int
k
=
0
;k
<
ColumnCount;k
++
)
{
if
((i
+
j
*
iSize)
<
dt.Rows.Count)
{
string
aa
=
dt.Columns[iColumnID[k]].ColumnName
+
j;
dr[dt.Columns[iColumnID[k]].ColumnName
+
j]
=
dt.Rows[i
+
j
*
iSize][iColumnID[k]];
}
}
}
newdt.Rows.Add(dr);
}
return
newdt;
}
查看全文
相关阅读:
[NOI2014]起床困难综合症(贪心+位运算)(暑假ACM1 A)
BZOJ 2456 mode(找众数)(暑假ACM1 F)
[POI2000]病毒(补全AC自动机)
[NOI2005]聪聪与可可
BZOJ4500矩阵
网络编程物理层
当列表推导式遇到lambda(匿名函数)
写学生管理系统后的一些感想
深入学习python内存管理
python基础详解
原文地址:https://www.cnblogs.com/phiree/p/280460.html
最新文章
6种进程间通信方式
创建进程的步骤
操作系统5个方面的功能和操作系统的四大特征
段式存储、页式存储。
js基本数据类型和引用类型的区别详解-笔记
js内存空间详细图解-笔记
前端开发工具网址
js常用代码-笔记
移动端h5开发相关内容总结css篇--笔记
移动端开发时默认样式reset
热门文章
如何提升页面渲染效率--笔记
webstorm启动后右下角总有进程在扫描
vue-cli快速构建Vue项目
css设置一行显示,超出部分显示...
POJ 2299 Ultra-QuickSort 简单题解
[国家集训队]最长双回文串
CF17E Palisection(相交回文子串)(暑假 D6)
[NOIP2014]解方程 (暑假ACM1 H)
暑假D9 T3elect(线段树优化DP)
暑假D9 T2 extra(单调栈优化DP)
Copyright © 2011-2022 走看看