将项目列表与DataTable中的列之一进行比较

时间:2014-03-18 06:49:28

标签: c# datatable

我有一个包含2列(ProjectId, ServerGroupID

的数据表
DataTable projectRestrictionList = new DataTable();    
projectRestrictionList =
               GetProjectRestrictionDatatable(projectID, serverGroupIds);

我有一个项目列表"sgRestrictedServerGroups"

List<Dell.AFP.Entity.ServerGroup> sgRestrictedServerGroups =
               prjctInfoResponse.RestrictedServerGroupList;

现在我想将sgRestrictedServerGroups的这个列表与表中的ServergroupId列联系起来,并将结果放在列表中。

有人可以为此提供帮助吗?

2 个答案:

答案 0 :(得分:0)

使用join尝试使用此linq语句:  
编辑:

 var tabletolist = projectRestrictionList.AsEnumerable().ToList();
   var restricted =  from p in tabletolist 
                     join s in sgRestrictedServerGroups
                     on p.ServerGroupID equals s.ServerGroupID
                     select p;

答案 1 :(得分:0)

您需要的是在服务器组ID上简单连接两个序列。假设 ServerGroupID 包含整数值,ServerGroup实体中的id属性名称为Id

var result = from r in projectRestrictionList.AsEnumerable()
             join sg in sgRestrictedServerGroups 
                  on r.Field<int>("ServerGroupID") equals sg.Id
             select sg;

随意使用您拥有的属性名称和列类型。