Linq/Lambda OrderBy Delegate for List of IP Addresses

前端 未结 6 678
粉色の甜心
粉色の甜心 2021-01-01 21:34

Given List ips = new List();

I need to sort the list of IP addresses in a logical order (i.e. \"192.168.0.2\" comes before \

6条回答
  •  抹茶落季
    2021-01-01 22:32

    This one is pretty elegant (and fail proof if you use TryParse):

    var sorted2 = from ip in ips
                  let addressBytes = IPAddress.Parse(ip).GetAddressBytes()
                  orderby addressBytes[0], addressBytes[1], addressBytes[2], addressBytes[3]
                  select ip;
    

    The addressBytes array will have length 4 as long as it is only IP4 addresses. Otherwise you should account for the length...

提交回复
热议问题