首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么当与LINQ to SQL一起使用时,ToDictionary<K,V>()会产生编译器错误?

为什么当与LINQ to SQL一起使用时,ToDictionary<K,V>()会产生编译器错误?
EN

Stack Overflow用户
提问于 2009-03-10 13:08:32
回答 1查看 663关注 0票数 2

接下来的这个问题:

Linq-to-SQL ToDictionary()

我有一个名为Domains的表,它有两列:

DomainID int

DomainName varchar(250)

我想返回一个Dictionary<int, string>。当我尝试以下任一LINQ to SQL代码时:

代码语言:javascript
代码运行次数:0
运行
复制
Dictionary<int, string> dict =
    dbc
    .Domains
    .Select(d => new {d.DomainID, d.DomainName})
    .AsEnumerable()
    .ToDictionary<int, string>(k => k.DomainID, k => k.DomainName);

代码语言:javascript
代码运行次数:0
运行
复制
Dictionary<int, string> dict = 
    (from d in dbc.Domains
      select new { d.DomainID, d.DomainName })
      .AsEnumerable()
      .ToDictionary<int, string>(k => k.DomainID, k => k.DomainName);

我得到以下编译错误:

Instance argument: cannot convert from 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<int>'

这里的场景看起来和q245168一样,应该可以工作,我是不是遗漏了什么显而易见的东西?

干杯

Kev

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-03-10 13:16:48

尝试删除泛型类型参数;第一个是,而不是键:

代码语言:javascript
代码运行次数:0
运行
复制
Dictionary<int, string> dict = 
(from d in dbc.Domains
  select new { d.DomainID, d.DomainName })
  .AsEnumerable()
  .ToDictionary(k => k.DomainID, k => k.DomainName); // <==== no angles

在这里,我们使用泛型类型推断来提供细节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/630071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档