두 가지 방법이 거의 같습니다. 상태 OR 상태 및 schoolType을 기반으로 List<XmlNode>
을 얻은 다음 IEnumerable<KeyValuePair<string,string>>
으로 구별 된 주문을 반환합니다. 나는 그들이 리팩토링 될 수 있다는 것을 알고 있지만 어떤 타입의 매개 변수가 메서드 반환 (각 메서드의 마지막 줄)에 대한 linq 문이어야하는지 결정하는 데 어려움을 겪고 있습니다.두 가지 방법을 하나로 리팩터링하십시오.
미리 도움을 주셔서 감사합니다.
private IEnumerable<KeyValuePair<string, string>> getAreaDropDownDataSource() {
StateInfoXmlDocument stateInfoXmlDocument = new StateInfoXmlDocument();
string schoolTypeXmlPath = string.Format(STATE_AND_SCHOOL_TYPE_XML_PATH, StateOfInterest, ConnectionsLearningSchoolType);
var schoolNodes = new List<XmlNode>(stateInfoXmlDocument.SelectNodes(schoolTypeXmlPath).Cast<XmlNode>());
return schoolNodes.Select(x => new KeyValuePair<string, string>(x.Attributes["idLocation"].Value, x.Value)).OrderBy(x => x.Key).Distinct();
}
private IEnumerable<KeyValuePair<string, string>> getStateOfInterestDropDownDataSource() {
StateInfoXmlDocument stateInfoXmlDocument = new StateInfoXmlDocument();
string schoolTypeXmlPath = string.Format(SCHOOL_TYPE_XML_PATH, ConnectionsLearningSchoolType);
var schoolNodes = new List<XmlNode>(stateInfoXmlDocument.SelectNodes(schoolTypeXmlPath).Cast<XmlNode>());
return schoolNodes.Select(x => new KeyValuePair<string, string>(x.Attributes["stateCode"].Value, x.Attributes["stateName"].Value)).OrderBy(x => x.Key).Distinct();
}
은'schoolTypeXmlPath'는 OP의 두 방법 ... –
@lc마다 다르다. 고마워, 그걸 알아 채지 못 했어. 속성에서 메소드 –
로 변경되었습니다. 감사합니다. 여기에 몇 가지 좋은 아이디어가 있습니다. :) – bflemi3