2010-08-13 48 views
2

我有一个包含自定义类型的IList。该自定义类型的其中一个属性称为ID。我怎么能转换,而不使用for循环?该数组不应该是CustomType,但是如果类型为ID,即int。将通用IList <CustomType>转换为数组?

谢谢!

回答

14

尝试:

sourceList.Select(i => i.ID).ToArray();

哪里sourceList是你喜欢的类型IList<CustomType>.

+0

这将返回一个可空的名单,犯规呢?我用这个数组调用的方法并不需要可空类型...我必须改变什么? – grady 2010-08-13 14:51:39

+0

@grady - 返回的数组不是可为null的整数,它将是一个'int []'类型,而不是'int?[]'。事实上,如果你这个代码'int?[] newArray = ......'那么它会失败。 – 2010-08-13 14:56:03

+0

你确定吗?编译器抱怨它...我有一个方法获取int数组,并引发错误。 – grady 2010-08-13 14:58:04