Profiles.Activity.Utilities.DataIO.GetUnclumpedSubset C# (CSharp) Method

GetUnclumpedSubset() private method

private GetUnclumpedSubset ( List activities, int count ) : List
activities List
count int
return List
        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;
        }