【发布时间】:2022-01-14 05:01:27
【问题描述】:
-
在这种情况下 First() 或 FirstOrDefault() 哪个更好?
-
如果没有找到IP地址,默认的结果是什么?那将会 空?
Dns.GetHostAddresses(hosturl).First().ToString()
或
Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
【问题讨论】:
在这种情况下 First() 或 FirstOrDefault() 哪个更好?
如果没有找到IP地址,默认的结果是什么?那将会 空?
Dns.GetHostAddresses(hosturl).First().ToString()
或
Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
【问题讨论】:
First() 和FirstOrDefault() 之间的区别仅在集合不包含任何元素的情况下才相关。
在这种情况下,First() 抛出异常,而FirstOrDefault() 返回default(T)(对于引用类型为 null)。在你的情况下,第一条指令
Dns.GetHostAddresses(hosturl).First().ToString()
因此会在列表为空时抛出异常,而第二条指令
Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
如果列表为空,也会抛出异常(NullReferenceException),因为ToString() 在空引用上被调用。
【讨论】: