//private static IEnumerable<GroupOfDataObjects> GetAttributeGroup1( // ICollection<IGrouping<double, GroupMember>> groups, // int minimumNumberOfMembers) //{ // var elemGroup = new GroupOfDataObjects(groups.First().ToList()); // elemGroup.MinValue = elemGroup.AttributeValues.Min(member => member.Value); // var min = elemGroup.MinValue; // var previous = elemGroup; // foreach (var group in groups.Skip(1)) // { // if (minimumNumberOfMembers >= elemGroup.AttributeValues.Count) // { // elemGroup.AttributeValues.AddRange(group); // continue; // } // previous = elemGroup; // min = FindGroupRange(elemGroup, min); // yield return elemGroup; // elemGroup = new GroupOfDataObjects(group.ToList()); // } // if (minimumNumberOfMembers >= elemGroup.AttributeValues.Count) // { // previous.AttributeValues.AddRange(elemGroup.AttributeValues); // FindGroupRange(previous, min); // } // else // { // yield return elemGroup; // } //} private static double FindGroupRange( GroupOfDataObjects elemGroup, double min) { elemGroup.MaxValue = elemGroup.AttributeValues.Max(member => member.Value); elemGroup.MinValue = min; min = elemGroup.MaxValue; return(min); }
private static IEnumerable <GroupOfDataObjects> CreateGroups(List <GroupMember>[] groupOfDataObjects) { var min = groupOfDataObjects.First().ToArray().Min(member => member.Value); foreach (var groupOfDataObject in groupOfDataObjects) { var elemGroup = new GroupOfDataObjects(groupOfDataObject.ToArray()); FindGroupRange(elemGroup, min); min = elemGroup.MaxValue; yield return(elemGroup); } }
public GroupOfDataObjectsCover( GroupOfDataObjects group) { Group = group; }