gpt4 book ai didi

c# - Linq 查询从列表列表中获取对象

转载 作者:行者123 更新时间:2023-12-02 17:45:49 25 4
gpt4 key购买 nike

我有一个 AccountContacts 类,其中包含一个数据成员联系人,它是 ContactInfo 类型的列表。

每个 ContactInfo 类都有两个成员。 1. 保存 ContactTypes(字符串)的列表 2. 联系人对象。

所以,看起来像

Class AccountContacts
{
List<ContactInfo> Contacts;
}

Class ContactInfo
{
List<string> ContactType;
Contact UserContact;
}

现在如果我有一个 AccountContacts 对象 (ac),如何获取 ContactInfo 中的 ContactType 列表包含特定字符串的 Contact 对象。

顺便说一句,每个 ContactType 列表都彼此不同。这样每次就可以返回Contact对象。

我尝试过类似的事情。

Contact myContact = ac.Contacts.Find(c => c.ContactType.Contains("specificString")).UserContact;

我能够获取我的联系人。只是想知道有没有更好的方法来做到这一点?

最佳答案

您的代码:

  • 您正在使用Find method如果与您的条件不匹配,即没有与您的输入匹配的 ContactType,这将产生 null 结果。

  • 当您调用 .UserContact 时,这将导致 NullReferenceException,因为您无法执行 null.UserContact

<小时/>

更安全 - 检查 null:

var contact = (ac.Contacts.Where(c => c.ContactType.Contains("specificString")).Select(c => c.UserContact)).FirstOrDefault();
  • 这使用 Contains method确定列表中是否包含您要查找的字符串。

  • 如果找到匹配项,则将选择联系人

  • 然后 FirstOrDefault 将获取第一条记录或返回 null

关于c# - Linq 查询从列表列表中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686163/

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