public IEnumerable <object> GetOutputs() { return(OutputMappings .Select <PositionInOc5State, object>(mapping => { var indexInInputs = InputMappings.IndexOf(mapping); var indexInOc5StateList = mapping.IndexInOc5StateList; switch (mapping.Type) { case PredefinedObjects.Types._boolean: return Bools[indexInOc5StateList]; case PredefinedObjects.Types._integer: return Ints[indexInOc5StateList]; case PredefinedObjects.Types._string: return Strings[indexInOc5StateList]; case PredefinedObjects.Types._float: return Floats[indexInOc5StateList]; case PredefinedObjects.Types._double: return Doubles[indexInOc5StateList]; default: throw new ArgumentException($"No predefined type with index {mapping.Type}!"); } } )); }
public void AssignInputs(params object[] inputs) { InputMappings .ToList() .ForEach( (mapping) => { var indexInInputs = InputMappings.IndexOf(mapping); var indexInOc5StateList = mapping.IndexInOc5StateList; switch (mapping.Type) { case PredefinedObjects.Types._boolean: Bools[indexInOc5StateList] = (bool)inputs[indexInInputs]; break; case PredefinedObjects.Types._integer: Ints[indexInOc5StateList] = (int)inputs[indexInInputs]; break; case PredefinedObjects.Types._string: Strings[indexInOc5StateList] = (string)inputs[indexInInputs]; break; case PredefinedObjects.Types._float: Floats[indexInOc5StateList] = (float)inputs[indexInInputs]; break; case PredefinedObjects.Types._double: Doubles[indexInOc5StateList] = (double)inputs[indexInInputs]; break; default: throw new ArgumentException($"No predefined type with index {mapping.Type}!"); } } ); }