[c#]对于嵌套类的 LINQ 查询

标签: Linq C#
发布时间: 2017/2/28 23:01:10
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

作为与 C# LINQ 的新手,我相当困惑与某个特定的查询,我在尝试执行。我有一个数组的一个特定的类被称为 Session 。此类的属性之一是数组的 ActiveConnection ,另一个类。每个 ActiveConnection 包含枚举为 ProcessType

这里的目标是︰ 我需要确定哪些 Session 表示数组中的对象包含 ActiveConnectionProccessType.Guest 。之后大量的摆弄,我我我下面的代码 (它甚至不能再编译的话)。

// 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 查询。任何帮助,将不胜感谢。

解决方法 1:

你为此需要使用嵌套的查询 (因为 ActiveConnections 是一家集):

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

这将返回所有会话, Guest 是在 ActiveConnections 列表 (这是什么你)。要做什么您的代码,您将需要︰

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