我必须列出。
List<User>
和
List<Friends>
在用户中有10个Coloumns,其中一个是“UserID”,在朋友中我们有4个Coloumns,其中一个是“UserIDActive”。
现在我想要一个新的列表,其中只有所有用户都在其中,这些用户也在朋友中。通过Coloum UserID == UserIDActive连接,具有相同的值。
怎么做? 使用.contain,我只能检查两个包含相同对象的列表。
答案 0 :(得分:3)
您可以通过简单的连接来完成此操作:
var matchingUsers = users
.Join(friends, u => u.UserID, f => f.UserIDActive, (u, f) => u);
Join
的重载需要四个参数:
如果需要,您可以返回包含用户和朋友的匿名类型,如下所示:
var matches = users
.Join(friends, u => u.UserID, f => f.UserIDActive, (u, f) => new
{
User = u,
Friend = f
});
如果您有重复的可能性,请务必使用Distinct
var matchingUsers = users
.Join(friends, u => u.UserID, f => f.UserIDActive, (u, f) => u)
.Distinct;
答案 1 :(得分:1)
List<User> newUserList = Users.Where(user => Friends.Select(friend => friend.UserIDActive).Contains(user.UserID));