主要的代码是这里:其它的不用管
private static void Collect(ArrayList list)
{
PrintList(list);
Console.WriteLine("Collected:");
for (int i = 0; i < list.Count; i++)
{
Dog dogI = (Dog)list[i];
for (int j = i + 1; j < list.Count; j++)
{
Dog dogJ = (Dog)list[j];
if (dogI.Id == dogJ.Id)
{
dogI.Number += dogJ.Number;
list.RemoveAt(j);
}
}
Print(dogI);
}
}
private static void Collect(ArrayList list)
{
PrintList(list);
Console.WriteLine("Collected:");
for (int i = 0; i < list.Count; i++)
{
Dog dogI = (Dog)list[i];
for (int j = i + 1; j < list.Count; j++)
{
Dog dogJ = (Dog)list[j];
if (dogI.Id == dogJ.Id)
{
dogI.Number += dogJ.Number;
list.RemoveAt(j);
}
}
Print(dogI);
}
}
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 10
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 10
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 10
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 10
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 10
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 10
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 10
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 10
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 10
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 10
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 10
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 10
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 10
Collected:
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 40
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 40
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 40
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 40
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 40
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 80
这是结果,我想的是这样:
Id is c4dd303c-7574-4d5f-81ab-4d5e1b85c400, Name is dog1,Number is 40
Id is e142d74c-c0ec-40ba-b80e-54866848c41e, Name is dog2,Number is 40
Id is 32610084-eb16-4d58-83c9-cce6bb4570c1, Name is dog3,Number is 40
private static void Collect(ArrayList list)
{
PrintList(list);
Console.WriteLine("Collected:");
for (int i = 0; i < list.Count; i++)
{
Dog dogI = (Dog)list[i];
for (int j = i + 1; j < list.Count; j++)
{
Dog dogJ = (Dog)list[j];
if (dogI.Id == dogJ.Id)
{
dogI.Number += dogJ.Number;
list.RemoveAt(j);
}
}
Print(dogI);
}
}
还是我自己改好了,发出来:
private static void Collect(ArrayList list)
{
PrintList(list);
Console.WriteLine("Collected:");
for (int i = 0; i < list.Count; i++)
{
int number = 0;
if (list[i] != null)
{
Dog dogI = (Dog)list[i];
number = dogI.Number;
for (int j = i + 1; j < list.Count; j++)
{
if (list[j] != null)
{
Dog dogJ = (Dog)list[j];
if (dogI.Id == dogJ.Id)
{
number += dogJ.Number;
list[j] = null;
}
}
}
dogI.Number = number;
Print(dogI);
}
}
}
public static void Collect(ArrayList list)
{
Hashtable ht = new Hashtable();
foreach(Dog dg in ArrayList)
{
if (!ht.Contains(dg.Id)
{
ht.Add(dg.Id,dg);
}
else
{
(ht[dt.Id] as Dog).Number += dg.Number;
}
}
//把ht当中的对象Print出来.
}
{
ht.Add(dg.Id,dg);
}
(ht[dt.Id] as Dog).Number += dg.Number;
select sum(number) from tablename group by name这不就都解决了吗