c# - 无法从 'AnonymousType#1' 转换为 'int'

标签 c# anonymous-types

我只需要获取所有团队成员的 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/

相关文章:

delphi - delphi 中的匿名记录构造函数

c# - LINQ 匿名类型没有给出我需要的列表

c# - 用户控制设计

c# - EF4 复杂的 Select() : Return IEnumerable or IEnumerable<MyCustomDto> from Business Tier?

c# - 使用 const boolean 时的编译器警告

c# - 系统.Net.WebException : The remote name could not be resolved

c# - 匿名类型名称冲突

WCF 和匿名类型

c# - 为什么公共(public)类不能从不太可见的类继承?

c# - 从 C# 创建 Win32 事件