Quantcast
Channel: ADO.NET, Entity Framework, LINQ to SQL, NHibernate
Viewing all articles
Browse latest Browse all 1698

Having an issue with linq order by with a custom comparer not finishing.

$
0
0

The comparer gets called over and over and never finishes when I call orderProb().ToList().  Am I doing something wrong?

public class PreferredAddressComparer : IComparer<AddressTest>
    {
        public int Compare(AddressTest x, AddressTest y)
        {
            //default address
            if (x.defaultAddress == true)
            {
                return 1;
            }

            if (y.defaultAddress == true)
            {
                return -1;
            }

            var addressTypeOrder = new[] { 1, 4, 2, 3, 5 };
            foreach (var addressTypeId in addressTypeOrder)
            {
                if (x.addressTypeId == addressTypeId)
                {
                    return 1;
                }

                if (y.addressTypeId == addressTypeId)
                {
                    return -1;
                }
            }

            return 0;
        }
    }

    public class AddressTest
    {
        public int addressId { get; set; }
        public bool? defaultAddress { get; set; }
        public int? addressTypeId { get; set; }
    }
---------------------------------------

public IEnumerable<AddressTest> orderProb()
        {
            var addresses = new[] {new AddressTest
            {
               addressId = 1,
               addressTypeId = 1
            },
            new AddressTest
            {
                addressId = 2,
                addressTypeId = 2
            } };
            var comparer = new PreferredAddressComparer();
            return addresses.OrderBy(x => x, comparer);
        }


Viewing all articles
Browse latest Browse all 1698

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>