据我所知,对于我的问题,LINQ 和 lambda 表达式是解决之道。在我的办公室里,我有一个IM日志列表,是一个二维数组[X长度][2宽度],以便我可以看到谁和谁IM了。但是这些日志由三位数的用户ID组成,而不是实际名称。
例如,lstSuspects(1) = 353,lstSuspects(2) = 563等。我想创建一个新的简单列表lstSuspectsContacted,以便我可以找出每个在lstSuspects上的人已经联系了哪些独特的用户ID(次数无关紧要)。我该怎么做?
arrIMLog[x][1]
因此,日志条目可能看起来像这样:arrIMLog [0] [0] = 353,arrIMLog [0] [1] = 563表示用户353发送了即时消息给用户563。然后,我有一个用户ID列表,想要通过查阅日志找出他们曾与谁进行过即时通讯。
lstSuspects
例如,lstSuspects(1) = 353,lstSuspects(2) = 563等。我想创建一个新的简单列表lstSuspectsContacted,以便我可以找出每个在lstSuspects上的人已经联系了哪些独特的用户ID(次数无关紧要)。我该怎么做?
var lstSuspectsContacted = (from x in arrIMLog
join y in lstSuspects
on arrIMLog[0] or arrIMLog[1] equals lstSuspects // join criteria
select new { arrIMLog[0] or arrIMLog[1]}).ToList();
我遇到的困难是,如果在 lstSuspects 和 arrIMLog 的另一个元素[1]或[0]中存在匹配,则希望选择数组中的[0]或[1]元素。 我不知道如何实现这一点。