我知道在Linq中将类型转换为IEnumerablefrom的两种方法,Arraylist并且想知道在哪种情况下使用它们?
IEnumerable
Arraylist
例如
IEnumerable<string> someCollection = arrayList.OfType<string>()
要么
IEnumerable<string> someCollection = arrayList.Cast<string>()
这两种方法有什么区别?每种情况应在哪里应用?
OfType-仅返回可以安全地转换为x类型的元素。 Cast-将尝试将所有元素转换为类型x。如果其中一些不是这种类型的,您将得到InvalidCastException
OfType
Cast
InvalidCastException
编辑 例如:
object[] objs = new object[] { "12345", 12 }; objs.Cast<string>().ToArray(); //throws InvalidCastException objs.OfType<string>().ToArray(); //return { "12345" }