C# 转换通用IList<;客户类型>;排列?

C# 转换通用IList<;客户类型>;排列?,c#,generic-list,C#,Generic List,我有一个包含自定义类型的IList。该自定义类型的属性之一称为ID。我如何在不使用for循环的情况下转换它?数组不应为CustomType,但如果类型为ID,则为int 谢谢 试试看: sourceList.Select(i=>i.ID.ToArray() 其中sourceList是类型为IList的列表。这将返回一个可为空的列表,不是吗?使用此数组调用的方法不接受可为null的类型…我必须更改什么?@grady-返回的数组不是可为null的int的集合,它将是int[]类型,而不是int?[]

我有一个包含自定义类型的IList。该自定义类型的属性之一称为ID。我如何在不使用for循环的情况下转换它?数组不应为CustomType,但如果类型为ID,则为int

谢谢

试试看:

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


其中
sourceList
是类型为
IList的列表。

这将返回一个可为空的列表,不是吗?使用此数组调用的方法不接受可为null的类型…我必须更改什么?@grady-返回的数组不是可为null的int的集合,它将是
int[]
类型,而不是
int?[]
。事实上,如果您使用此代码“int?[]newArray=…”,那么它将失败。您确定吗?编译器对此表示不满……我有一个方法,它获取一个int数组,并在那里抛出错误。@grady,如果ID的类型是可为null的int,这将只返回可为null的int。如果ID是int?如果需要int,则需要创建一个类似
sourceList.Where(i=>i.ID.HasValue)的链
Where
清除任何可能没有值的ID,并且
Select
将提取int值。