我有IP地址的列表如下如何使用C#
192.168.1.5
69.52.220.44
10.152.16.23
192.168.3.10
192.168.1.4
192.168.2.1
我在尋找這樣的方式來對此列表進行排序,以匹配下面的順序來排序的IP地址列表
10.152.16.23
69.52.220.44
192.168.1.4
192.168.1.5
192.168.2.1
我有IP地址的列表如下如何使用C#
192.168.1.5
69.52.220.44
10.152.16.23
192.168.3.10
192.168.1.4
192.168.2.1
我在尋找這樣的方式來對此列表進行排序,以匹配下面的順序來排序的IP地址列表
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();
您可以將每個IP地址轉換爲整數,像這樣......
69.52.220.44 =>
69 * 255 * 255 * 255 +
52 * 255 * 255 +
220 * 255 +
44
然後按整數表示進行排序。
您可能也覺得這個功能很有用。
這是一個狡猾的方法! – ColinE 2011-06-06 05:23:56
那個讓我失望。 – Tormod 2011-06-06 05:26:25
這會給你 「10.152.16.23」, 「192.168.1.4」, 「192.168.1.5」, 「192.168.2.1」, 「69.52.220.44」 – Norbert 2011-06-06 05:38:35