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