我知道有两种将类型转换为IEnumerable
从一个Arraylist
在 Linq 中并想知道在什么情况下使用它们?
e.g
IEnumerable<string> someCollection = arrayList.OfType<string>()
or
IEnumerable<string> someCollection = arrayList.Cast<string>()
这两种方法有什么区别,每种情况应该应用在哪里?
OfType
- 仅返回可以安全地转换为 x 类型的元素。
Cast
- 将尝试将所有元素转换为 x 类型。如果其中一些不属于这种类型,您将得到InvalidCastException
EDIT
例如:
object[] objs = new object[] { "12345", 12 };
objs.Cast<string>().ToArray(); //throws InvalidCastException
objs.OfType<string>().ToArray(); //return { "12345" }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)