高分求算法!!!!我是搞不定了!!!
我有一个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>");
}
}
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
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);
}