private static IEnumerable <ISampleConfig> CleanUpConfiguration(ISampleConfig[] sampleConfigs) { var uniqueType = sampleConfigs.GroupBy(item => item.Type).ToList(); if (sampleConfigs.Length == uniqueType.Count) { return(sampleConfigs); } { var newSampleConfigs = new ISampleConfig[uniqueType.Count]; var correctData = uniqueType.Where(item => item.Count() == 1).Select(item => item.First()).ToArray(); var duplicateData = uniqueType.Where(item => item.Count() > 1).Select(item => item); var i = 0; for (; i < correctData.Length; i++) { newSampleConfigs[i] = correctData[i]; } foreach (var sampleConfig in duplicateData) { var dataNames = sampleConfig.GroupBy(item => item.DataNames).SelectMany(item => item.Key).Distinct() .ToArray(); newSampleConfigs[i] = new SampleConfig(sampleConfig.First().Type, dataNames); i++; } sampleConfigs = newSampleConfigs; } return(sampleConfigs); }
private void AddNewConfiguration(ISampleConfig sampleConfig) { var inputData = sampleConfig.DataNames.ToDictionary <string, string, dynamic>( name => name, name => ObjectCreator.CreateArray(sampleConfig.Type, _dataSize) ); _dataContainer.Add(sampleConfig.Type, inputData); }