Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用什么
what to use with Dns.GetHostAddresses with First() or FirstOrDefault()
在这种情况下,First() 或 FirstOrDefault() 哪个更好?
如果找不到IP地址,default的结果是什么?那将会
空的?
Dns.GetHostAddresses(hosturl).First().ToString()
或
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()
是在空引用上调用的。
在这种情况下,First() 或 FirstOrDefault() 哪个更好?
如果找不到IP地址,default的结果是什么?那将会 空的?
Dns.GetHostAddresses(hosturl).First().ToString()
或
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()
是在空引用上调用的。