我想获取一些数据并将其转换为对象列表.从这个列表中我想选择非空且具有特定类型的项目.之后,我想将这些对象变量转换为正确的类型,并将此列表作为数组返回.
ContactEndpoint[] points = (GetContactInformation(contact, ContactInformationType.ContactEndpoints) as List<object>)
.Select(item => item)
.Where(item => item != null && item is ContactEndpoint)
.ConvertAll(item => item as ContactEndpoint)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
使用此代码会抛出错误 ConvertAll
'IEnumerable'不包含'ConvertAll'的定义,并且没有扩展方法'ConvertAll'接受类型'IEnumerable'的第一个参数可以找到(你是否缺少using指令或汇编引用?)
我的语法似乎是错的,我想做的就是
我该如何解决?
你可以使用Enumerable.Cast
或 - 因为你想过滤 - Enumerable.OfType
:
而不是
.Where(item => item != null && item is ContactEndpoint)
.ConvertAll(item => item as ContactEndpoint)
Run Code Online (Sandbox Code Playgroud)
这个(因为null
值永远不会匹配任何类型,它们被隐式过滤掉OfType
):
.OfType<ContactEndpoint>()
Run Code Online (Sandbox Code Playgroud)
ConvertAll
是一种方法Arrray
或List<T>
归档时间: |
|
查看次数: |
120 次 |
最近记录: |