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)));
When I run this code I have the error:
Cannot assign void to an implicitly-typed local variable
I googled and found that it is a type issue because foreach
is not a LINQ function? I cannot understand where the void
is!
ForEach()
has type void
.
Select()
returns IEnumerable<T>
, ToList()
returns List<T>
, etc.
so:
List<X> x = ...Select(x => x).ToList(); // List<T>
or
x.ForEach(x => x); // void
because you can't assign void
to 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);
}
}
or
var query = ....
.SelectMany(z => z.Select(x => x.IP).Distinct());
foreach (var ip in query)
{
PAINTIP(ip);
}