我只需要获取所有团队成员的 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);
}
}
我收到以下错误:无法从“AnonymousType#1”转换为“int”
最佳答案
与 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();
The problem is that I need to merge it with another anonymous list of ids
您的其他列表 resContactIds
也是List<int>
,它不是匿名对象的列表。
还有一件事要补充,您可以省略调用 ToList
在自 AddRange
以来的第一个查询中可以接受IEnumerable<T>
关于c# - 无法从 'AnonymousType#1' 转换为 'int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981863/