Tan*_*990 14 c# linq linq-to-entities entity-framework compiler-errors
var query = rep.GetIp() // in this line i have the error
.Where(x => x.CITY == CITY)
.GroupBy(y => o.Fam)
.Select(z => new IpDTO
{
IId = z.Key.Id,
IP = z.Select(x => x.IP).Distinct()
})
.ToList().ForEach(IpObj => IpObj.IP.ToList().ForEach(ip => PAINTIP(ip)));
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我有错误:
无法将void分配给隐式类型的局部变量
我用Google搜索并发现它是一个类型问题,因为foreach它不是LINQ函数?我无法理解它在哪里void!
aba*_*hev 13
ForEach()有类型void.
Select()退货IEnumerable<T>,ToList()退货List<T>等
所以:
List<X> x = ...Select(x => x).ToList(); // List<T>
Run Code Online (Sandbox Code Playgroud)
要么
x.ForEach(x => x); // void
Run Code Online (Sandbox Code Playgroud)
因为你不能分配void给List<T>.
var query = rep.GetIp() // in this line i have the error
.Where(x => x.CITY == CITY)
.GroupBy(y => o.Fam)
.Select(z => new IpDTO
{
IId = z.Key.Id,
IP = z.Select(x => x.IP).Distinct()
});
foreach (var dto in query)
{
foreach (var ip in dto.IP)
{
PAINTIP(ip);
}
}
Run Code Online (Sandbox Code Playgroud)
要么
var query = ....
.SelectMany(z => z.Select(x => x.IP).Distinct());
foreach (var ip in query)
{
PAINTIP(ip);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28411 次 |
| 最近记录: |