[英]IEnumerable<type> does not contain a definition of 'Contains'
我有 2 个类和 2 个这些类的 IEnumerable 列表:
public class Values
{
public int Value { get; set; }
public DateTime SomeDate { get; set; }
}
public class Holidays
{
public DateTime holiday { get; set; }
}
IEnumerable<Values> values;
IEnumerable<Holidays> holidays;
接下来,我试图选择那些“值”,其中“someDate”不在“假期”中
var query = values.Where(x=> !holidays.Contains(x.someDate));
但是,这给了我IEnumerable<Holidays> does not contain a definition of 'Contains'
的错误。
System.Linq 已添加到using
。
我相信这与收藏品有关,但我无法弄清楚是什么。
作为其他人已经建议的替代方案:
var holidayDates = new HashSet<DateTime>(holidays.Select(h => h.holiday));
var query = values.Where(x => !holidayDates.Contains(x.someDate));
特别是,如果您有很多假期,此更改将使按值检查更加高效。
你可能想要Any() :
var query = values.Where(v => !holidays.Any(h => h.holiday == v.someDate));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.