//テキストから予定を解析するメソッド public Appointment Parse(string text) { //全角数字を半角数字に string PreprocessedText = ConvertTextZenToHanNum(text); //スペース(全角半角)を取り除く(数字と数字の間のスペースは区切りがあるので削除しない) PreprocessedText = RemoveSpace(PreprocessedText); List <IndexComparable> listDateTime = new List <IndexComparable>(); //テキストから日付を抽出 listDateTime.AddRange(m_parserOfDate.Parse(PreprocessedText)); //テキストから時刻を抽出 listDateTime.AddRange(m_parserOfTime.Parse(PreprocessedText)); //日付・時刻をテキスト内の出現順にソート listDateTime.Sort(); var builder = new Appointment.Builder(); for (int i = 0; i < listDateTime.Count; i++) { IndexComparable m = listDateTime[i]; if (m is DateWithMatchedIndex) //日付の場合 { builder.append(((DateWithMatchedIndex)m).m_date); } else if (m is TimeWithMatchedIndex) //時刻の場合 { builder.append(((TimeWithMatchedIndex)m).m_time); } } return(builder.build()); }
public int CompareTo(object obj) { //nullより大きい if (obj == null) { return(1); } IndexComparable m = obj as IndexComparable; //違う型とは比較できない if (m == null) { throw new ArgumentException("別の型とは比較できません。", "obj"); } return(m_index.CompareTo(m.m_index)); }