列表.在可移植类库中存在缺失

本文关键字:存在 类库 可移植 列表 | 更新日期: 2023-09-27 18:18:28

我正在创建一个可移植类库(PCL),我试图使用List.Exists()和List.TrueForAll(),但我被告知System.Collections.Generic.List不包含Exists或TrueForAll的定义。我正在创建的PCL可以在。net 4.5、Silverlight 4、Windows Phone 7.5、Mono Android和Mono iOS上工作。我是不是漏掉了什么?

注意:这段代码是在我制作的。net 4.0库中工作的。

返回错误的代码示例:

List<object> set0;
List<object> set1;
if (set0.TrueForAll(obj0 => set1.Exists(obj1 => obj0.Equals(obj1))))
    return true;
if(!(set0.Exists(obj0 => !set1.Exists(obj1 => obj0.Equals(obj1)))))
    return true;

错误收到:

错误:"System.Collections.Generic。列表'不包含定义'Exists',并且没有扩展方法'Exists'接受类型"System.Collections.Generic.List"的第一个参数可以找到(您是否缺少using指令或程序集?参考?)

错误:"System.Collections.Generic。列表'不包含定义'TrueForAll'并且没有扩展方法'TrueForAll'接受类型的第一个参数"System.Collections.Generic。可以找到一个列表(你是吗缺少using指令或程序集引用?)

列表.在可移植类库中存在缺失

你似乎在试图确定,以一种繁琐的方式,如果set0set1的子集(数学上)。如果您将类型从List<>更改为HashSet<>SortedSet<>,您将免费获得此功能。

否则,考虑使用

set0.Except(set1).Any()
从Linq

我不确定哪些方法存在于可移植类库(PCL)中,但根据List<>.Exists文档,这种方法确实存在。还有我提到的Linq方法