c# - 如何根据listitem对arraylist进行排序

标签 c# asp.net .net

我有 arraylist,它有包含日期​​和一些字符串的列表项。我想根据日期对这个 Arraylist 进行排序。 我有以下用于 arraylist 项的伪代码。

ArrayList _arListDAte = new ArrayList();
//foreach loop for DAtatable rows
ListItem lstitem = new ListItem();
//here is condition for assigning text to lstitem
//if condition match
lstitem.Text = Today.Date() + ' - Allowed'
//else
lstitem.Text = Today.Date() + ' - Not allowed'

listitem.value = datarow[id]+'-M';

所以最后我的 Arraylist 包含以下数据
文本值
11-04-2013 - 允许 120-M
5-01-2013 - 允许 101-M
2-02-2013 - 允许 121-M
8-8-2012 - 不允许 126 海里

我想按日期升序排列这个数组列表。

最佳答案

定义一个自定义比较器:

public class DateComparer: IComparer  {

int IComparer.Compare( Object x, Object y )  {
    String a = (x as ListItem).Text;
    String b = (y as ListItem).Text;

    DateTime aDate = DateTime.Parse(a.split(null)[0]);
    DateTime bDate = DateTime.Parse(b.split(null)[0]);
    return DateTime.Compare(aDate, bDate);        
  }
}

在你的代码之后调用它:

IComparer comp = new DateComparer();
arListDAte.Sort(comp);

关于c# - 如何根据listitem对arraylist进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006631/

相关文章:

asp.net - 对于如何使用 VB.NET 在 ASP.NET 中创建按钮单击事件,为什么选择私有(private)与 protected ?

.net - 如何在 SpeechSynthesizer() 中安装和使用附加语音?

c# - Visual Studio 在停止调试器后保持句柄打开

c# - 使用 Action 委托(delegate)根据泛型调用正确的函数

c# - Linq 会产生冗余吗?

具有 CRUD 角色的 ASP.NET MVC 授权

c# - 什么解码了我的编码哈希符号 (%23)?

asp.net - 为什么网站项目中缺少 global.asax

C# IL - 调用构造函数

c# - 使用单个值对象的不同表示