Search code examples
c#.netliststringip-address

How to sort list of Ip Addresses using c#


I've a list of IP addresses as follows

192.168.1.5
69.52.220.44
10.152.16.23
192.168.3.10
192.168.1.4
192.168.2.1

I'm looking for such a way to sort this list to match the below order

10.152.16.23
69.52.220.44
192.168.1.4
192.168.1.5
192.168.2.1

Solution

  • This might look as a hack, but it does exactly what you need:

    var unsortedIps =
        new[]
        {
            "192.168.1.4",
            "192.168.1.5",
            "192.168.2.1",
            "10.152.16.23",
            "69.52.220.44"
        };
    
    var sortedIps = unsortedIps
        .Select(Version.Parse)
        .OrderBy(arg => arg)
        .Select(arg => arg.ToString())
        .ToList();