Делаю обычную группировку типовно странная какая-то вещь происходит
так всё работает
class Program
{
class City
{
public int? newCityID;
public int oldCityID;
}
static void Main(string[] args)
{
City c1 = new City
{
newCityID = 1,
oldCityID = 1
};
City c2 = new City
{
newCityID = 0,
oldCityID = 2
};
City c3 = new City
{
newCityID = 0,
oldCityID = 1
};
City c4 = new City
{
newCityID = 4,
oldCityID = 4,
dt = DateTime.Now
};
var cities = new List<City> { c1, c2, c3, c4 };
var arr1 = cities.Where(i => i.newCityID != 0).GroupBy(i1 => i1.newCityID.GetValueOrDefault()).ToList();
var arr2 = cities.Where(j => j.newCityID == 0).GroupBy(j1 => j1.oldCityID).ToList();
var nc = cities.Where(i => i.newCityID != 0).Select(g => new
{
unionCityID = g.newCityID.GetValueOrDefault(),
g
})
.Union(cities.Where(i => i.newCityID == 0).Select(g => new
{
unionCityID = g.oldCityID,
g
}))
.GroupBy(r => r.unionCityID).ToList();
}
}
но стоит заменить выделенную g на g1 во втором селекте и начинает выкидывать ошибку
что такое? ведь второй селект не видит первый