Я использую ArrayList для хранения объектов класса SocialTimes. SocialTimes содержит строку и 2 числа. Я пытаюсь сортировать по часам и минутам. Я понятия не имею, как это сделать. Может кто-нибудь мне помочь?
public class SocialTimes
{
string DateToPostStr = "";
int HourToPost = 0;
int MinuteToPost = 0;
public SocialTimes(string DateToPostStr, int HourToPost, int MinuteToPost)
{
this.DateToPostStr = DateToPostStr;
this.HourToPost = HourToPost;
this.MinuteToPost = MinuteToPost;
}
public string getDateToPostStr()
{
return this.DateToPostStr;
}
public int getHourToPost()
{
return this.HourToPost;
}
public int getMinuteToPost()
{
return this.MinuteToPost;
}
public static implicit operator SocialTimes(ArrayList v)
{
throw new NotImplementedException();
}
}
public class myComparer : IComparer
{
int IComparer.Compare(Object xx, Object yy)
{
SocialTimes x = (SocialTimes)xx;
SocialTimes y = (SocialTimes)yy;
return x.getHourToPost().CompareTo(y.getHourToPost());
}
}
Так вот метод для проверки сортировки ArrayList ...
private void testHourMinuteSort()
{
ArrayList projects = new ArrayList();
projects.Add(new SocialTimes("03/14/20", 17, 7));
projects.Add(new SocialTimes("03/14/20", 10, 39));
projects.Add(new SocialTimes("03/14/20", 12, 7));
projects.Add(new SocialTimes("03/14/20", 3, 16));
projects.Add(new SocialTimes("03/14/20", 21, 8));
projects.Add(new SocialTimes("03/14/20", 20, 56));
projects.Add(new SocialTimes("03/14/20", 3, 2));
projects.Sort(new myComparer());
string hoursminutes = "";
foreach (SocialTimes item in projects)
{
hoursminutes = hoursminutes + String.Format("Hour: {0} Minute: {1}", item.getHourToPost(), item.getMinuteToPost()) + Environment.NewLine;
}
MessageBox.Show(hoursminutes);
}
часов минут:
- Час: 3 Минута: 16
- Часы: 3 минуты: 2
- Часы: 10 минут: 39
- Часы: 12 минут: 7
- Часы: 17 минут: 7
- Час: 20 минут: 56
- Час: 21 минута: 8
Мне нужна сортировка по часам и минутам, как показано ниже.
- Часы: 3 минуты: 2
- Часы: 3 минуты: 16
- Часы: 10 минут: 39
- Часы: 12 минут: 7
- час: 17 минут: 7
- час: 20 минут: 56
- час: 21 минута: 8