public override string GetValue(string fieldName) { switch (fieldName) { case Fields.Accession: return(Accession); case Fields.Description: return(Description); case Fields.Database: return(Database); case Fields.DatabaseVersion: return(DatabaseVersion); case Fields.SearchEngine: return(SearchEngines == null ? MzTab.NullFieldText : string.Join("|", SearchEngines)); case Fields.TaxID: return(TaxID.ToString()); case Fields.Species: return(Species); case Fields.Modifications: return(Modificiations); case Fields.AmbiguityMembers: return(AmbiguityMembers == null ? MzTab.NullFieldText : string.Join(",", AmbiguityMembers)); case Fields.Reliability: if (Reliability == MzTab.ReliabilityScore.NotSet) { return(MzTab.NullFieldText); } return(((int)Reliability).ToString()); case Fields.Coverage: return(Coverage.ToString()); case Fields.Uri: return(Uri != null?Uri.ToString() : MzTab.NullFieldText); case Fields.GoTerms: return(GoTerms == null ? MzTab.NullFieldText : string.Join("|", GoTerms)); } if (fieldName.Contains("[")) { string condensedFieldName; List <int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName); switch (condensedFieldName) { case Fields.SearchEngine: return(GetListValue(_searchEngines, indices[0])); case Fields.BestSearchEngineScore: return(GetListValue(_bestSearchEngineScores, indices[0])); case Fields.AbundancePerAssay: return(GetListValue(_abundanceAssays, indices[0])); case Fields.AbundanceStudyVariables: return(GetListValue(_abundanceStudyVariables, indices[0])); case Fields.AbundanceStdevStudyVariables: return(GetListValue(_abundanceStdevStudyVariables, indices[0])); case Fields.AbundanceStandardErrorStudyVariables: return(GetListValue(_abundanceStandardErrorStudyVariables, indices[0])); case Fields.SearchEngineScoreMsRun: return(GetListValue(_searchEngineScoreMsRun, indices[0], indices[1])); case Fields.NumberOfPsmsPerMsRun: return(GetListValue(_numberOfPsmsPerMsRun, indices[0])); case Fields.NumberOfDistinctPeptidesPerMsRun: return(GetListValue(_numberOfDistinctPeptidesPerMsRun, indices[0])); case Fields.NumberOfUniquePeptidesPerMsRun: return(GetListValue(_numberOfUniquePeptidesPerMsRun, indices[0])); } } if (fieldName.StartsWith(MzTab.OptionalColumnPrefix)) { return(GetOptionalData(fieldName)); } throw new ArgumentException("Unexpected field name: " + fieldName); }