在我的工作场所,我有一个简化的日志文件,其中记录了谁已经 IM(即时消息)谁。对于我们的简单示例,假设日志是一个包含 2 个制表符分隔的列的文本文件。如果 A 与 B 联系,反之亦然,它在日志中显示为 AB 或 BA。IM 的方向无关紧要,只是两人一直在联系。
我有 2 个研究组 X 和 Y 的列表,其中包含 A、B、C 等人的姓名。我的目标是通过查看日志文件。我不能就人数或不同成员的数量对 X 组和 Y 组的成员做出任何假设。
如果这是一个我想使用连接的数据库,但我想学习如何使用 C#/LINQ 来做到这一点。如何在日志文件中找到 X 组和 Y 组的交集?
我想我想联合 lstGroupX 和 lstGroupY 的成员,使其成员之间所有可能的一对一组合看起来像 AB 或 BA,然后在日志文件中查找 AB 或 BA。
//assume the log is in a list called lstLog
//a list called lstGroupX contains the names GroupX members
//a list called lstGroupY contains the names GroupY members
var IMBuddies = lstLog.Intersect(lstGroupX).Intersect(lstGroupY);
我不认为上面的行是完全正确的。我真正想要的是这样的
var IMBuddies = lstLog.Intersect(all possible permutations where lstGroupX members contacts lstGroupY members and vice versa)
但我不知道该怎么做。