gpt4 book ai didi

c# - 嵌套类的 LINQ 查询

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

作为 C# 和 LINQ 的新手,我对我正在尝试的特定查询的实现相当困惑。我有一组名为 Session 的特定类。该类的一个属性是另一个类ActiveConnection 的数组。每个 ActiveConnection 都包含一个 ProcessType 的枚举。

目标如下:我需要确定所述数组中的哪些 Session 对象包含带有 ProccessType.GuestActiveConnection。经过大量调整后,我得到了下面的代码(甚至无法编译)。

// Creating my array Session[]
var sessions = GetSessions();

var busySessions = from sessions
where sessions.ActiveConnections.ProcessType != ProcessType.Guest
select sessions;

// Do other stuff with this array of busy sessions

显然,我不明白如何实现 LINQ 查询。任何帮助将不胜感激。

最佳答案

为此您需要一个嵌套查询(因为 ActiveConnections 是一个集合):

var result = sessions.Where(session => session.ActiveConnections.Any(conn => conn.ProcessType == ProcessType.Guest));

这将返回 GuestActiveConnections 列表中的所有 session (这是您所说)。要完成您的代码所做的工作,您需要:

var result = sessions.Where(session => session.ActiveConnections.All(conn => conn.ProcessType != ProcessType.Guest));

关于c# - 嵌套类的 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766934/

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