/// <summary> /// Open any datasets that were used by the input layer. /// </summary> private void OpenDataSet() { // clear out any data sets already there _readDataSet.Clear(); _dataSetFieldMap.Clear(); _dataSetIteratorMap.Clear(); // only add each iterator once IDictionary<IMLDataSet, MLDataFieldHolder> uniqueSets = new Dictionary<IMLDataSet, MLDataFieldHolder>(); // find the unique files foreach (IInputField field in _inputFields) { if (field is InputFieldMLDataSet) { var dataSetField = (InputFieldMLDataSet)field; IMLDataSet dataSet = dataSetField.NeuralDataSet; if (!uniqueSets.ContainsKey(dataSet)) { IEnumerator<IMLDataPair> iterator = dataSet .GetEnumerator(); var holder = new MLDataFieldHolder( iterator, dataSetField); uniqueSets[dataSet] = holder; _readDataSet.Add(iterator); } MLDataFieldHolder holder2 = uniqueSets[dataSet]; _dataSetFieldMap[dataSetField] = holder2; _dataSetIteratorMap[holder2.GetEnumerator()] = holder2; } } }
private void OpenDataSet() { this._readDataSet.Clear(); this._dataSetFieldMap.Clear(); this._dataSetIteratorMap.Clear(); IDictionary<IMLDataSet, MLDataFieldHolder> dictionary = new Dictionary<IMLDataSet, MLDataFieldHolder>(); using (IEnumerator<IInputField> enumerator2 = this._inputFields.GetEnumerator()) { IInputField field; InputFieldMLDataSet set; IMLDataSet neuralDataSet; IEnumerator<IMLDataPair> enumerator; MLDataFieldHolder holder; MLDataFieldHolder holder2; goto Label_006B; Label_0036: holder2 = dictionary[neuralDataSet]; this._dataSetFieldMap[set] = holder2; this._dataSetIteratorMap[holder2.GetEnumerator()] = holder2; goto Label_006B; Label_0063: if (field is InputFieldMLDataSet) { goto Label_00B5; } Label_006B: if (!enumerator2.MoveNext() && (0 == 0)) { return; } goto Label_00CB; Label_007C: holder = new MLDataFieldHolder(enumerator, set); dictionary[neuralDataSet] = holder; Label_008F: this._readDataSet.Add(enumerator); goto Label_0036; Label_009E: if (dictionary.ContainsKey(neuralDataSet)) { goto Label_0036; } enumerator = neuralDataSet.GetEnumerator(); goto Label_00D5; Label_00B5: set = (InputFieldMLDataSet) field; if (0 == 0) { neuralDataSet = set.NeuralDataSet; if (0 != 0) { goto Label_008F; } } goto Label_009E; Label_00CB: field = enumerator2.Current; goto Label_0063; Label_00D5: if (0 == 0) { goto Label_007C; } goto Label_0036; } }