0

尝试对自定义对象类型的 ArrayList 进行排序时,我感到有些沮丧。我正在尝试使用 LINQ,以下代码是我用于测试的代码:

        foreach (classOrder co in orderList)
        {
            MessageBox.Show("Before: " + co.Feet);
        }

        //use LINQ to sort my orderList which is an ArrayList of classOrder objects
        var sortedList = orderList.OfType<classOrder>().OrderBy(r => r.Feet);

        foreach (classOrder co in sortedList)
        {
            MessageBox.Show("After: " + co.Feet);
        }

显然这是不正确的,因为底部 foreach 的输出与顶部相同。因为它只对第一个数字进行排序。Feet 是一个字符串,但包含数字。任何帮助表示赞赏。谢谢!

4

2 回答 2

0

对于arrayList,也许您应该使用排序。

http://msdn.microsoft.com/en-us/library/8k6e334t.aspx

我建议尽可能避免使用 ArrayList,或者除非您出于特定目的需要它。在这种情况下,List 或您需要的任何类型将是更可取的,因为它使您可以访问奇妙的扩展方法,如 OrderBy

于 2013-03-11T21:22:13.140 回答
0

您必须在自定义类中实现 IComparable iinterface,然后才能使用简单的 List.Sort() 函数。

于 2013-03-11T21:23:29.897 回答