Linq. Union и Nullable
От: Аноним  
Дата: 22.02.11 06:53
Оценка:
Делаю обычную группировку типовно странная какая-то вещь происходит
так всё работает

 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 во втором селекте и начинает выкидывать ошибку
что такое? ведь второй селект не видит первый
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.