接下来的这个问题:
我有一个名为Domains
的表,它有两列:
DomainID int
DomainName varchar(250)
我想返回一个Dictionary<int, string>
。当我尝试以下任一LINQ to SQL代码时:
Dictionary<int, string> dict =
dbc
.Domains
.Select(d => new {d.DomainID, d.DomainName})
.AsEnumerable()
.ToDictionary<int, string>(k => k.DomainID, k => k.DomainName);
或
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
发布于 2009-03-10 13:16:48
尝试删除泛型类型参数;第一个是源,而不是键:
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
在这里,我们使用泛型类型推断来提供细节。
https://stackoverflow.com/questions/630071
复制相似问题