gpt4 book ai didi

c# - IEnumerable 不包含 'Contains' 的定义

转载 作者:太空狗 更新时间:2023-10-29 17:28:33 26 4
gpt4 key购买 nike

我有 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

我相信这与集合有关,但我不知道是什么。

最佳答案

当您使用 Contains 时,您要查找的对象必须匹配类型 TIEnumerable<T> .因此,您无法搜索 IEnumerable<A>对于 B 类型的包含对象因为没有隐含的方法来比较两者。

如其他答案中所述,使用 Any 并自己传入比较。

或者,这也是您可以使用 Select 的情况。其次是 Contains ,尽管在某些情况下这可能不太可读:

var query = values
.Where(x => !holidays
.Select(h => h.holiday)
.Contains(x.someDate));

关于c# - IEnumerable<type> 不包含 'Contains' 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com