public static Dictionary <List <double>, List <double> > MakeClusters(List <List <double> > points, List <List <double> > clusterCenters) { Dictionary <List <double>, List <double> > distancesToClusterCenters = AlgorithmsUtils.CalculateDistancesToClusterCenters(points, clusterCenters); Dictionary <List <double>, List <double> > clusters = new Dictionary <List <double>, List <double> >(); foreach (KeyValuePair <List <double>, List <double> > distanceToClusterCenter in distancesToClusterCenters) { int clusterNumber = ListUtils.GetMinIndex(distanceToClusterCenter.Value); clusters.Add(distanceToClusterCenter.Key, clusterCenters[clusterNumber]); } return(clusters); }