读书人

高分求算法!小弟我是搞不定了!

发布时间: 2013-06-25 23:45:41 作者: rapoo

高分求算法!!!!我是搞不定了!!!
我有一个dataset
这里面有很多数据
里面的列有 id comid sdate edate type
id是唯一的 comid 是重复的

问题来了
同一个comid 下面有可能有3个不同type(最多3个最少1个)
我怎么做才能 把同一个comid的type值取出来输出到同一段话里面
comid不是连续的 id不是连续的 type不是连续的
不要写名字要写具体方法
我先把我的方法写上


for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var sr = from d in ds.Tables[0].AsEnumerable()
where d.Field<int>("com_id") == Convert.ToInt32(ds.Tables[0].Rows[i]["com_id"])
select d;

foreach (var item in sr)
{
if (item.Field<int>("type") == 5)
{
hong = "color:red;";
int a = item.Field<int>("com_id");

}
if (item.Field<int>("type") == 7)
{
hot = "11111111111111111111111";
int b = item.Field<int>("com_id");
}
if (item.Field<int>("type") == 8)
{
ji = "<img src='images/ji.gif'>";
int c = item.Field<int>("com_id");
}
}

ca = comacc.GetModel(Convert.ToInt32(ds.Tables[0].Rows[i]["com_id"]), " and Trade=" + com);

li.Add(Convert.ToInt32(ds.Tables[0].Rows[i]["com_id"]));
if (ca != null)


{
sb.AppendLine("<li><a href='firminfos.aspx?id=" + ca.Comid + "' target='_blank' title='" + ca.CompanyName + "'><span class='index_shopComTitle' style='cursor: hand;" + hong + " '>" + ca.CompanyName + hot + ji + "</span></a></li>");
}
}


我现在就是重复了
[解决办法]
sql2005,以上支持


create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
select id, [value] = stuff((select ',' + [value] from tb t where id = tb.id for XML path('')) , 1 , 1 , '')
from tb
group by id

[解决办法]
这个groupby不就可以了吗,还是上面说的,不淡定啊

public class T1
{
public int ID { get; set; }
public string com_id { get; set; }

public string type { get; set; }
}

List<T1> t1 = new List<T1>();
var linq = from m in t1
group m by m.com_id into g
select g;
Dictionary<string, string> dic = new Dictionary<string, string>();
foreach (var item in linq)
{
string v = "";
foreach (var item1 in item)
{


v +=","+item1.type;
}
v.TrimStart(',');
dic.Add(item.Key, v);
}


一个例子

读书人网 >asp.net

热点推荐