List OrderByDescending、OrderBy 与 Sort 的区别

protected void Do1(List<int> list)
{
	list.Add(999);
}


protected void Do2(List<int> list)
{
	// OrderByDescending 需要引入命名空间 System.Linq。
	list = list.OrderByDescending(m => m).ToList(); // 不会影响外部 list。
	list.Add(9999); // 不会影响外部 list。
}


protected void Do3(List<int> list)
{
	Comparison<int> comparsion = new   <int>(delegate (int m, int n)
	{
		if (m > n)
		{
			return -1;
		}
		else if (m == n)
		{
			return 0;
		}
		else
		{
			return 1;
		}
	});

	list.Sort(comparsion);
}


protected void Page_Load(object sender, EventArgs e)
{
	List<int> list = new List<int>();

	list.Add(99);
	list.Add(9);
	Response.Write(list.Count + ", "); // 2

	Do1(list);
	Response.Write(list.Count + ", "); // 3

	Do2(list);
	foreach (var item in list)
	{
		Response.Write(item + ", "); // 99、9、999
	}

	Do3(list);
	foreach (var item in list)
	{
		Response.Write(item + ", "); // 999、99、9
	}
}
  • OrderByDescending、OrderBy 需要命名空间 System.Linq。

  • OrderByDescending、OrderBy 是创建一个新对象并返回;Sort 是直接操作该 List。

  • OrderByDescending、OrderBy 使用方便;Sort 需写 Comparison。

相关阅读

  • 巧用 Array.IndexOf 为 List 自定义排序

你可能感兴趣的