Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用什么

what to use with Dns.GetHostAddresses with First() or FirstOrDefault()

Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()

First()FirstOrDefault() 之间的区别仅在集合不包含任何元素的情况下相关。

在那种情况下 First() 抛出异常,而 FirstOrDefault() returns default(T) (对于引用类型为 null)。在你的例子中,第一条指令

Dns.GetHostAddresses(hosturl).First().ToString()

因此当列表为空时会抛出异常,而第二条指令

Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
如果列表为空,

也会抛出异常(NullReferenceException),因为 ToString() 是在空引用上调用的。