gpt4 book ai didi

c# - 对 ISet 集合的 Linq 查询

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:31 25 4
gpt4 key购买 nike

我有一个客户有一个联系人列表。这个列表是一个 ISet 集合。我无法对其进行 Linq 查询。你能帮我吗?

谢谢,

public class Customer
{
public virtual Iesi.Collections.Generic.ISet<Contact> Contacts { get; set; }
}

Customer customer = session.Get(id);
customer.Contacts = // Error - customer.Contacts.Where(x => x.Id != contactId);

更新一

试过这个:from p in customer.Contacts.AsEnumerable() where p.Id != id select p;where.System.Collections.Generic.IEnumerable 错误到“Iesi.Collections.Generic.ISet”。 存在显式转换(是否缺少强制转换?)

最佳答案

我相信这个问题与 IESI ISet 实现 IEnumerable 无关(顺便说一句,它 确实),但答案是由“更新”到原始帖子。

这条线...

customer.Contacts = customer.Contacts.Where(x => x.Id != contactId);

...实际上(错误地)尝试将 IEnumerable (.Where(...) 运算符的结果)分配给 ISet 类型的属性(客户类别)。

我强烈怀疑这条线没问题......

IEnumerable<Contact> contacts = customer.Contacts.Where(x => x.Id != contactId);

...证明 .Where(...) 运算符在 IESI ISet 上运行良好,但 .Where(...) 返回的(当然)是 IEnumerable

为此,您需要将 .Where(...) 操作的结果从 IEnumerable 转换为 ISet ,然后再尝试将其分配给 customer.Contacts 属性。

关于c# - 对 ISet 集合的 Linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160450/

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