Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用啥
Posted
技术标签:
【中文标题】Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用啥【英文标题】:what to use with Dns.GetHostAddresses with First() or FirstOrDefault()Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用什么 【发布时间】:2022-01-14 05:01:27 【问题描述】:在这种情况下 First() 或 FirstOrDefault() 哪个更好?
如果没有找到IP地址,默认的结果是什么?那将会 空?
Dns.GetHostAddresses(hosturl).First().ToString()
或
Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
【问题讨论】:
【参考方案1】:First()
和FirstOrDefault()
之间的区别仅在集合不包含任何元素的情况下才相关。
在这种情况下,First()
抛出异常,而FirstOrDefault()
返回default(T)
(对于引用类型为 null)。在你的情况下,第一条指令
Dns.GetHostAddresses(hosturl).First().ToString()
因此会在列表为空时抛出异常,而第二条指令
Dns.GetHostAddresses(hosturl).FirstOrDefault().ToString()
如果列表为空,也会抛出异常(NullReferenceException),因为ToString()
在空引用上被调用。
【讨论】:
以上是关于Dns.GetHostAddresses 与 First() 或 FirstOrDefault() 一起使用啥的主要内容,如果未能解决你的问题,请参考以下文章