排序列表升序并写入ListBox

时间:2014-04-12 12:30:41

标签: c# winforms

我想问一下如何按日期时间排序列表。我有课程任务

 public class tasks
{
    public string name { get; set; }
    /// <summary>
    /// Datum narození
    /// </summary>
    public DateTime expires { get; set; }
.
.
.
}

班级数据

 public class data
{
   public List<tasks> tsk = new List<tasks>();

public data()
    {
    }


 public void AddTask(string name, DateTime expires)
    {          
        tasks ts = new tasks(name, expires.Date);
        tsk.Add(ts);
    }

在主程序中,我将数据存储在List中。

private data dt = new data();


dt.AddTask(textBox1.Text, dateTimePicker1.Value);

我想将数据写入listbox sortAscending。

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ进行排序,然后使用AddRange将其放入列表框中:

MyList m = new MyList();

m.Add("n1", DateTime.Now);
m.Add("n2", DateTime.Now.AddDays(1));
m.Add("n3", DateTime.Now.AddDays(-1));

var sortedList = from i in m
    orderby i.expires
    select i;
listBox1.Items.AddRange(sortedList.ToArray());

答案 1 :(得分:0)

很难说MyLIst是如何定义的,但如果它是标准集合之一,那么它应该有效。

var result = MyList.OrderBy(x => x.expires).Select(x => x);