diff --git a/FastGithub.DomainResolve/DnsClient.cs b/FastGithub.DomainResolve/DnsClient.cs index fe3b175..e97867b 100644 --- a/FastGithub.DomainResolve/DnsClient.cs +++ b/FastGithub.DomainResolve/DnsClient.cs @@ -265,12 +265,15 @@ namespace FastGithub.DomainResolve return addresses; } - var hashSet = new HashSet { fastedAddress }; + var list = new List { fastedAddress }; foreach (var address in addresses) { - hashSet.Add(address); + if (address.Equals(fastedAddress) == false) + { + list.Add(address); + } } - return hashSet.ToArray(); + return list.ToArray(); } /// diff --git a/FastGithub.DomainResolve/IPAddressCollection.cs b/FastGithub.DomainResolve/IPAddressCollection.cs index 2fc1122..9659161 100644 --- a/FastGithub.DomainResolve/IPAddressCollection.cs +++ b/FastGithub.DomainResolve/IPAddressCollection.cs @@ -41,7 +41,10 @@ namespace FastGithub.DomainResolve /// public IPAddress[] ToArray() { - return this.ToItemArray().OrderBy(item => item.PingElapsed).Select(item => item.Address).ToArray(); + lock (this.syncRoot) + { + return this.hashSet.OrderBy(item => item.PingElapsed).Select(item => item.Address).ToArray(); + } } ///