排序函数后ArrayList更改

时间:2012-01-18 03:13:18

标签: object arraylist

我刚开始在一些C#代码中使用ArrayLists,在排序时遇到了一些问题。

首先,我在我的类下定义创建一个ArrayList对象:

ArrayList cutList = new ArrayList;

然后我设置并排序数组列表以找到最小值:

cutList.Add("2200","1800","1200","1");
int minList = (int)GetMinValue(cutList);

使用该功能:

public static object GetMinValue(ArrayList arrList)
{
ArrayList sortArrayList = arrList;
sortArrayList.Sort();
return sortArrayList[0];
}

后来我尝试找到索引cutList [2]并找到" 1200"因为该函数还对cutList进行了排序。我在过去也遇到了同样的问题,当我将变量设置为应用程序设置,然后在修改变量时应用程序设置发生变化。如何正确解决这些问题。我自己一直在学习C#,并且在跳过一点点内疚。是否有关于我缺少的对象的课程?

1 个答案:

答案 0 :(得分:0)

代码中的问题是ArrayList sortArrayList = arrList;不会将arrList复制到sortArrayList:分配只会为现有对象创建新别名。要使代码正常工作,请使用

ArrayList sortArrayList = (ArrayList)arrList.Clone();

我必须补充一点,这可能是查找列表中min元素的最低效方式,也是一个相当古老的容器。我更喜欢使用List<string>而不是ArrayList,并使用LINQ的Min()函数来获取最小元素。