0
のカスタム比較子を使用:私はリストを以下している文字列
var ips = new List<string> {
"192.168.5.1",
"192.168.0.2",
"192.168.0.3",
"192.168.0.4",
"192.168.1.1",
"192.168.1.2",
"192.168.1.3",
"192.168.1.4"
}.OrderBy(p => p.Ip);
それが動作するように見え、それはthis oneようなカスタム比較子を書き込む必要があり:
public class MyComparer : IComparer<string>
{
public int Compare(string x, string y)
{
int ip1 = IPAddress.Parse(x).ToInteger();
int ip2 = IPAddress.Parse(y).ToInteger();
return (((ip1 - ip2) >> 0x1F) | (int)((uint)(-(ip1 - ip2)) >> 0x1F));
}
}
OKです。今あなたの質問は何ですか? –
はい、必要です118.168.5.1 1.198.6.7。このデータと比較してください。 –
'.OprderBy(p => p)'は正しいコマンドであり、カスタム比較者は必要ありません。 –