我正在尝试查找出现在2个列表中的项目。我已经找到了使用简单列表的现有示例,但它们似乎并不是我所需要的。
这是一个配对的例子:
List<SiloNode> NodeList = new List<SiloNode>();
public class SiloNode
{
public List<string> Groups;
}
NodeList 是 SiloNode 的列表,每个项目都包含 Groups 中的字符串列表。>
首先,我从 NodeList 中提取一个代表当前页面的节点,所以我有了这个:
SiloNode currentNode = // code to get this node
因此,现在有了当前节点,我想在 NodesList 中找到包含 currentNode.Groups 中任何组项目的所有其他节点。
我已经看过使用.Contains和.Any的示例,但是这些仅演示了比较简单属性(例如string或int),到目前为止,我还没有提出正确的语法。
例如,下面的代码仅允许我与单个字符串进行比较:
public static IEnumerable<SiloNode> GroupMembers(this SiloNode currentNode)
{
return NodeList.Where(x => currentNode.Groups.Contains(x.Key));
}
有人可以帮助我到达我需要的地方吗?
答案 0 :(得分:0)
您可以使用Intersect扩展方法
return NodeList.Where(x => x.Groups.intersect(current.Groups).Any());