我有以下IP地址列表
192.168.1.5
69.52.220.44
10.152.16.23
192.168.3.10
192.168.1.4
192.168.2.1
我正在寻找一种对列表进行排序以匹配以下顺序的方法
10.152.16.23
69.52.220.44
192.168.1.4
192.168.1.5
192.168.2.1
这看起来像是骇客,但它确实满足你的需求:
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();
这将为您提供“ 10.152.16.23”,“ 192.168.1.4”,“ 192.168.1.5”,“ 192.168.2.1”,“ 69.52.220.44”
@Norbert-请在声明之前尝试代码。我实际上在发布之前检查了结果。
@Alex不错的解决方案,thnx Man
@Alex这实际上是一个绝妙的主意,谢谢,它节省了我的时间
我有一个,
List<IPAddress>
并按以下方式对其进行了排序:lstIp = lstIp.OrderBy(i => new Version(i.ToString())).ToList();