如何找到2个IEnumerable对象之间的区别

use*_*912 6 .net c#

我有2个guid列表:

IEnumerable<dynamic> userids = null;
IEnumerable<dynamic> lsCheckedUsers = null;
Run Code Online (Sandbox Code Playgroud)

userid和lsCheckedUsers列表使用dapper从SQL数据库填充.

我现在希望找到不在lsCheckedUsers中的所有用户标识.

我尝试了以下内容

var userdifference = userids.Where(i => !lsCheckedUsers.Contains(lsCheckedUsers));
var userdifference = userids.Except(lsCheckedUsers);
Run Code Online (Sandbox Code Playgroud)

以上都没有实际返回2之间的差异.

如何获得两者中不存在的guid的区别.

我确信lsCheckedUsers有用户ID中的Guids

Ian*_*ner 10

这是对的:

var userdifference = userids.Except(lsCheckedUsers);

如果您IEnumerable<dynamic>实际包含两者,它将起作用Guids.打印或检查每个中的项目以确保它们是Guids.

如果这是您所期望的,您应该真正使用IEnumerable<Guid>并投射传入的项目Guids.它有望防止你可能会看到的错误.