如何按两个条件订购列表

时间:2014-04-02 09:12:39

标签: c# list arraylist

我有点卡住...我有这个结构的HashTable ArrayList:

DataClasses1DataContext csdx = new DataClasses1DataContext();

IQueryable<dataType> dtList = csdx.datatypes.Where(dd => !dd.data_approve_date.Equals(null)).OrderBy(dd => dd.data_sign_date);


        dtList = dtList.Where(dt => dt.data_end <= qEnd || dt.data_sign_date <= qEnd);

        ArrayList dtList = new ArrayList();
        Hashtable dtElement = new Hashtable();  

        foreach (dataType dtt in dtList.ToList())
             {
              dtElement["signdate"] = dtt.data_sign_date.Date;
              dtElement["end"] = dtt.data_end;
              dtElement["sum"] = dtt.data_sum;

              dtList.Add(dtElement);
        }

qEnd是一年中关闭季度的结束(2014-03-31) 数据来自Linq查询:

signdate:2013-10-05, 结束日期:2014-02-15, 总和:65000

signdate:2014-01-21, 结束日期:2016-01-21, 总和:45000

signdate:2014-03-24, 结束时间:2015-06-24, 总和:95000

我必须通过signdate订购它们并在实际(关闭)年度季度结束。所以上面列表的顺序是:

signdate:2014-01-21, 结束日期:2016-01-21, 总和:45000

signdate:2013-10-05, 结束日期:2014-02-15, 总和:65000

signdate:2014-03-24, 结束时间:2015-06-24, 总和:95000

如您所见,我通过sign_date查询它们,但此列表也不是第二个日期。只有当它在实际的四分之一范围内时才结束。

我该如何执行此任务?

非常感谢!

1 个答案:

答案 0 :(得分:0)

不要使用像ArrayList这样的System.Collection类,使用泛型--System.Collection.Generic.List。然后它就像list.OrderBy(a =&gt; a.prop1).OrderBy(b =&gt; b.prop2)

一样简单