求大神帮助优化代码~!~

maqh813 2015-08-27 04:05:43

#region

DataTable dt = CollectionHelper.ConvertTo(list);
List<string> names = new List<string>();
StringBuilder _s = new StringBuilder();
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
if (!names.Contains(dr[4].ToString()))
{
names.Add(dr[4].ToString());

}
}

for (int i = 0; i < names.Count; i++)
{

DataTable _dt = new DataTable();
DataRow[] cou = dt.Select("LY='" + names[i] + "'");
_s.Append(" <ul id='accordion' style='margin-top:3%;'><li>来自:" + names[i] + "    共<span style='color:red'>" + cou.Length + "</span>条数据。</li>");
_s.Append("<ul class='newslist'>");
_s.Append("<li style='margin-top: 5px;'>");
_s.Append("<table class='table_list' cellpadding='0' cellspacing='0'>");
ArrayList weizhi = new ArrayList();
#region 添加表头

string[] lieming = cou[0].ItemArray[6].ToString().TrimEnd(',').Split(',');
_s.Append("<thead><tr>");
_s.Append("<td>编号</td>");
foreach (string item in lieming)
{
if (!bp.StringFiltering(item))
{
_s.Append("<td>" + item + "</td>");
int index = Array.IndexOf(lieming, item);
weizhi.Add(index);
}

}
_s.Append("<td>查看详细</td>");
_s.Append("</tr></thead>");

#endregion
_s.Append("<tbody>");

foreach (DataRow dr in cou)
{
_s.Append("<tr>");
_s.Append("<td>" + dr[5].ToString() + "</td>");
string[] contxt = dr[2].ToString().Split(',');
for (int a = 0; a < weizhi.Count; a++)
{
int aaa = Convert.ToInt32(weizhi[a]);
_s.Append("<td>");
_s.Append("" + contxt[aaa] + "");
_s.Append("</td>");

}
_s.Append("<td><a href='javascript:void(0);' onclick=\"topMp('" + BasePage.UrlEncodeZH(dr[1].ToString()) + "','" + dr[0].ToString() + "')\">查看详细</a></td>");
_s.Append("<tr>");

}

_s.Append("</tbody></table>");
_s.Append("</li>");
_s.Append("</ul></ul>");

}
wz = _s.ToString();
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "js", "clearZG();", true);
}

#endregion



速度非常慢,求帮助优化~!~
...全文
223 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
maqh813 2015-08-29
  • 打赏
  • 举报
回复
引用 10 楼 smthgdin 的回复:
网页加载1100w行数据不慢才怪。
有什么好办法,指点下,
smthgdin_020 2015-08-28
  • 打赏
  • 举报
回复
网页加载1100w行数据不慢才怪。
maqh813 2015-08-28
  • 打赏
  • 举报
回复
继续请大神指教下~!~
crystal_lz 2015-08-27
  • 打赏
  • 举报
回复
引用 7 楼 crystal_lz 的回复:

public class Test{
    public string NameInfo{get..}
    public StringBuilder SubInfo{get...}
}

Dictionary<string,Test> dic_name = ...
foreach (DataRow dr in dt.Rows)
{
    Test t = null;
    if (dic_name.ContainKeys(dr[4].ToString()))
    {
        t = dic_name[dr[4]];
    }else{
        t = new ..
        t.NameINfo = "xxxx";
        dic_name.Add(dr[4],lst);
    }
    t.SubInfo.Append("xxxx");
}

StringBuilder sb= new ..
foreach(var v in dic_name.Values){
    sb.Append(v.NameINfo);
    sb.append(v.Subinfo);
}
手敲的大概代码 还有为什么 要在页面上显示这个多东西?
dic_name.Add(dr[4],lst); lst 换成 t 写错了
crystal_lz 2015-08-27
  • 打赏
  • 举报
回复

public class Test{
    public string NameInfo{get..}
    public StringBuilder SubInfo{get...}
}

Dictionary<string,Test> dic_name = ...
foreach (DataRow dr in dt.Rows)
{
    Test t = null;
    if (dic_name.ContainKeys(dr[4].ToString()))
    {
        t = dic_name[dr[4]];
    }else{
        t = new ..
        t.NameINfo = "xxxx";
        dic_name.Add(dr[4],lst);
    }
    t.SubInfo.Append("xxxx");
}

StringBuilder sb= new ..
foreach(var v in dic_name.Values){
    sb.Append(v.NameINfo);
    sb.append(v.Subinfo);
}
手敲的大概代码 还有为什么 要在页面上显示这个多东西?
huwei001982 2015-08-27
  • 打赏
  • 举报
回复
引用 5 楼 maqh813 的回复:
[quote=引用 1 楼 maqh813 的回复:] 是循环太多的关系吗?
list里有1100万数据。这个都运行完要大概10秒。[/quote] ......
maqh813 2015-08-27
  • 打赏
  • 举报
回复
引用 1 楼 maqh813 的回复:
是循环太多的关系吗?
list里有1100万数据。这个都运行完要大概10秒。
maqh813 2015-08-27
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
非常慢是有多慢? 你还是先用个StopWatch来测试一下到底慢在哪里 目测你循环里还用了dt.select,这数据量大的话,不慢才怪
是dt.Select。。。
  • 打赏
  • 举报
回复
DataTable _dt = new DataTable(); DataRow[] cou = dt.Select("LY='" + names[i] + "'"); 空表Select个什么?,而且循环里面最好这么用 另外ArrayList weizhi = new ArrayList();改用List<int>可以避免装箱 用ascx用户控件比你这个好维护一点,而且还可以使用控件级缓存
於黾 2015-08-27
  • 打赏
  • 举报
回复
非常慢是有多慢? 你还是先用个StopWatch来测试一下到底慢在哪里 目测你循环里还用了dt.select,这数据量大的话,不慢才怪
maqh813 2015-08-27
  • 打赏
  • 举报
回复
是循环太多的关系吗?

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧