C#中的ArrayList与List<>有何区别?

497

ArrayListList<>在C#中有什么区别?

仅仅是因为List<>有一个类型而ArrayList没有吗?


7
可能是 ArrayList vs List<object> 的重复问题。 - John Saunders
9
这是一个棘手的问题,但我认为并不完全重复。这个问题询问 List<> 的一般情况,而那个问题则专门询问了 List<object> - goodeye
发现了这个非常有用的博客,可能会有所帮助。我想分享链接:http://fintechexplained.blogspot.co.uk/2017/07/data-structures-comparison.html - InfoLearner
12个回答

-2
使用“List”可以避免类型转换错误。这非常有用,可以避免运行时的类型转换错误。
例如:
在这里(使用ArrayList),您可以编译此代码,但稍后会看到执行错误。
    // Create a new ArrayList


    System.Collections.ArrayList mixedList = new System.Collections.ArrayList();


    // Add some numbers to the list
    mixedList.Add(7);
    mixedList.Add(21);


    // Add some strings to the list
    mixedList.Add("Hello");
    mixedList.Add("This is going to be a problem");




    System.Collections.ArrayList intList = new System.Collections.ArrayList();
    System.Collections.ArrayList strList = new System.Collections.ArrayList();


    foreach (object obj in mixedList)
    {
        if (obj.GetType().Equals(typeof(int)))
        {
            intList.Add(obj);
        }
        else if (obj.GetType().Equals(typeof(string)))
        {
            strList.Add(obj);
        }
        else
        {
            // error.
        }
    }

这个问题和三年前的回答有何不同之处?它几乎完全一样,没有链接到来源,没有正确格式化等。 - Douglas Zare

-3
对我来说,一切都在于了解你的数据。如果我继续扩展我的代码以提高效率,我将选择列表选项作为解密我的数据的方式,而不必总是担心类型,特别是“自定义类型”。如果机器能够理解差异并且可以自行确定我实际处理的数据类型,那么为什么我要妨碍它并浪费时间进行“IF THEN ELSE”决策的旋转呢?我的哲学是让机器为我工作,而不是我在机器上工作。了解不同对象代码命令的独特差异可以大大提高您的代码效率。
汤姆·约翰逊 (一个入口...一个出口)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接