コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }