日期:2014-05-17  浏览次数:20407 次

Linq怎么去掉重复名称的数据?
数据库表
create table SuperuserInfo--权限管理

SuperuserInfo_Id int primary key identity(1,1), --权限ID
DpmID int foreign key references DepartmentManagement(DpmID)not null,--部门
JmgID int foreign key references JobManagement(JmgID), --职位
SuperuserInfo_Poslition varchar(40), --职位(部门+职位)
SuperuserInfo_PrivilegeDescribe varchar(150) not null, --权限描述
MenuManagementInfo_Id int foreign key references MenuManagementInfo(MenuManagementInfo_Id) not null,--权限编号
SAddWordO varchar(20) null,                          --预留字段1
SAddWordT varchar(20) null                           --预留字段2
)
      
var sup = ctx.SuperuserInfo.ToList();
            List<SuperuserInfo> list = new List<SuperuserInfo>();
            foreach (var item in sup)
            {
                var key = item.SuperuserInfo_Poslition;
                var userlist = (from user in ctx.SuperuserInfo
                                where user.SuperuserInfo_Poslition(key)
                                select user).Distinct();
            }
key报错。。
这个我该怎么去掉SuperuserInfo_Poslition重复的数据?
------解决方案--------------------
group by  user.SuperuserInfo_Poslition

------解决方案--------------------
var SuperuserInfo_Poslitions=ctx.SuperuserInfo.Select(s=>s.SuperuserInfo_Poslition).Distinct().ToList();
这样得到所有的名称 
------解决方案--------------------
  var SuperuserInfo_Poslitions = ctx.SuperuserInfo.Select(s => s.SuperuserInfo_Poslition).Distinct().ToList();
            List<SuperuserInfo> list = new List<SuperuserInfo>();

            for (int j = 0; j < SuperuserInfo_Poslitions.Count; j++)
            {
                list.Add(ctx.SuperuserInfo.FirstOrDefault(s => s.SuperuserInfo_Poslition == SuperuserInfo_Poslitions[j].ToString()));
            }