private List<Activity> GetUnclumpedSubset(List<Activity> activities, int count)
{
int id = -1;
List<Activity> clumpedList = new List<Activity>();
List<Activity> subset = new List<Activity>();
foreach (Activity activity in activities)
{
if (id != activity.Profile.PersonId)
{
//grab a random one from the old clumpedList
if (clumpedList.Count > 0)
{
subset.Add(clumpedList[random.Next(0, clumpedList.Count)]);
if (subset.Count == count)
{
clumpedList.Clear();
break;
}
}
// start a new clump for the new person
clumpedList.Clear();
id = activity.Profile.PersonId;
}
clumpedList.Add(activity);
}
// add the last one if needed
if (clumpedList.Count > 0)
{
subset.Add(clumpedList[random.Next(0, clumpedList.Count)]);
}
return subset;
}