目前学到的转换小记
list实现了IEnumerable泛型接口,所以list拥有Cast方法,然而转换给的时候如果类型不匹配就会转换失败
OfType方法会忽略掉不能转换的元素.
这让我想起了 is和as的区别 as转换失败会返回null 而is会报异常
// ArrayList list = new ArrayList();
// list.Add(1);
// list.Add(10);
// list.Add(100);
// list.Add("1000");
// //Cast<T>()会把序列中的所有元素都转换,如果类型不匹配,会转换失败
// //报异常。
// IEnumerable<int> IE = list.Cast<int>();
// foreach (var item in IE)
// {
// Console.WriteLine(item);
// }
// //因为只有IEnumerable<T>才有这些扩展方法可调用
//// Console.WriteLine(IE.First());
//OfType()
ArrayList list = new ArrayList();
list.Add(1);
list.Add(10);
list.Add(100);
list.Add("1000");
//OfType<T>()会忽略不能转的。
IEnumerable<int> IE = list.OfType<int>();
foreach (var item in IE)
{
Console.WriteLine(item);
}
Console.ReadKey();