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() 一起使用啥的主要内容,如果未能解决你的问题,请参考以下文章

unity 获取本机ip地址

如何确定本地主机的 IPv4 地址?

获取本机IPV4地址

网络编程方法提取以及简介

C#获取客户端Ip工具类

C# 如何获取本机IP