阅读背景:

深入理解 c# 第十一章 Cast,OfType和显式类型的范围变量

来源:互联网 
    class CastAndOfType
    {
        static void Main()
        {
            ArrayList list = new ArrayList { "First", "Second", "Third"};
			//list Count=3
			//list列表只包含字符串,可以放心地使用Cast<string>来获得一个
			//字符串序列
            var strings = list.Cast<string>();
			//strings{System.Linq.Enumerable.CastIterator<string>}

            foreach (string item in strings)
			//先strings 后 in  后 stinrg item 初始为null
			//"First",
			//"Second"
			//"Third"
            {
                Console.WriteLine(item);
            }


            list = new ArrayList { 1, "not an int", 2, 3};
			//list Count = 4
			//这个List包含混杂的内容,所以为了从中只获取整数,只能用
			//OfType<int>  如果使用Cast<int>,那么尝试把"not an int"
			//转换为int的时候,会抛出一个异常。这个异常只会发生在打印出
			//"1"之后---两个操作符都对数据进行流处理,在获取元素的时候
			//才对其转换。
            var ints = list.OfType<int>();
			//ints {System.Linq.Enumerable.OfTypeIterator<int>}
            foreach (int item in ints)
			//先foreach, 后ints 后 in 后 int item
			//item 多次赋值
			//1
			//2  "not an int"跳过了
			//3
            {
                Console.WriteLine(item);
            }
        }
    }    class CastAndOfType
    {
        static vo



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: