2014-04-12 24 views
0

我想问如何按日期排序列表时间。我有类任务排序列表升序并写入列表框

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); 
    } 

主程序,在我列出的数据存储。

private data dt = new data(); 


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

我想将数据写入列表框sortAscending。

+0

请邮寄列表定义 –

+1

您是否已经偶然发现排序列表http://msdn.microsoft.com/ en-us/library/system.collections.sortedlist.aspx – rene

+1

您可以在4行代码中设置两个拼写错误。 'MyLIst'应该使用小写'i'。 'Add()'需要一个大写'a'。 – Hogan

回答

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()); 
0

很难说明如何定义MyLIst,但如果它是标准集合之一,它应该工作。

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

Select(x => x)是多余的 –

+0

@YuvalItzchakov - 这是一种风格的东西 - 我期望需要进行类型更改以便轻松添加到选择列表中。 – Hogan

+0

如果要迭代的类型是IEnumerable,则Select(x => x)将导致冗余的O(n)操作。 –