我得到这样的一个例外
Feature f = o.Features.SingleOrDefault(e => e.LinkName == PageLink);
解决方法
Single和SingleOrDefault设计为在序列中存在更多的一个匹配时抛出.这样做的结果是,在完成之前必须重复整个序列.这听起来不像你想要的那样.尝试使用FirstOrDefault:
Feature f = o.Features .FirstOrDefault(e => e.vcr_LinkName == PageLink && e.bit_Activate == true);
这将(通常)表现更好,因为一旦找到匹配就完成.
当然,如果你真的要保留多个元素,那么一个Where子句会更合适:
IEnumerable<Feature> fs = o.Features .Where(e => e.vcr_LinkName == PageLink && e.bit_Activate == true);