我需要获取所有团队成员ID,以便我可以查询联系人表。
var teamMembersIds = (from q in _repository.GetQuery<TeamMember>
(t => teamIds.Contains(t.TeamId))
select new { q.ResourceContactId }
)
.ToList();
问题是我需要将它与另一个匿名的ID列表合并。
resContactIds.AddRange(teamMembersIds);
我收到以下错误:
我也尝试了这个:
var resContactIds = new List<int>();
foreach (var _id in teamMembersIds)
{
if(resContactIds.Contains(_id))
{
resContactIds.Add(_id);
}
}
我收到以下错误:cannot convert from 'AnonymousType#1' to 'int'
答案 0 :(得分:14)
使用select new { q.ResourceContactId }
您要选择匿名类型,如果您需要List<int>
,请删除new
并使用大括号,如::
var teamMembersIds = (from q in _repository.GetQuery<TeamMember>
(t => teamIds.Contains(t.TeamId))
select q.ResourceContactId //here
)
.ToList();
问题是我需要将它与另一个匿名列表合并 IDS
您的其他列表resContactIds
也是List<int>
,它不是匿名对象列表。
要添加的另一件事是,您可以在第一个查询中忽略调用ToList
,因为AddRange
可以接受IEnumerable<T>