0

私の職場では、誰が IM を送信したか (インスタント メッセージを送信したか) の単純化されたログ ファイルがあります。簡単な例として、ログがタブ区切りの 2 つの列で構成されるテキスト ファイルであると仮定します。人物 A が人物 B に IM を送信した場合、またはその逆の場合、ログには AB または BA として表示されます。IM の方向は関係ありません。ペアが互いに接触しているというだけです。

X と Y という 2 つの研究グループのリストがあり、そこには A、B、C などの名前が含まれています。ログファイル。グループ X と Y のメンバーについて、人数や個別のメンバーに関して、私は何の推測もできません。

これがデータベースである場合、結合を使用することを想像しますが、C#/LINQ でこれを行う方法を学びたいと思います。ログファイル内でグループ X とグループ Y の交点を見つけるにはどうすればよいですか?

lstGroupX と lstGroupY のメンバーを結合して、そのメンバー間のすべての可能な 1 対 1 の組み合わせが 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)

しかし、私はそれを行う方法がわかりません。

4

1 に答える 1