100个 Unity实用技能☀️ | C#泛型集合常用方法,查找符合要求的第一个元素并返回

Posted 呆呆敲代码的小Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100个 Unity实用技能☀️ | C#泛型集合常用方法,查找符合要求的第一个元素并返回相关的知识,希望对你有一定的参考价值。

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏
  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------


Unity 实用小技能学习

C#泛型集合常用方法,查找符合要求的第一个元素并返回

之前写了一篇文章介绍了在List中查找第一个元素并返回的文章:
【100个 Unity实用技能】| C#中List.Find 方法详解 查找符合要求的第一个元素并返回

最近发现还有几种其他方法,不止针对List,对C#中的集合都可以使用。

几种方法如下:

1、list.Find(t => t == 666);
不会遍历所有记录,它只需遇到指定的 predicate 满足后即可返回。取序列中满足条件的第一个元素,但是只能在List上使用。

2、list.FirstOrDefault(t => t == 666);
会遍历所有的记录然后再返回结果。取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0),可以在IEnemerable上使用。

3、list.Where(t => t == 666).ToList().FirstOrDefault();
不如list.FirstOrDefault()的性能好,

类似的方法还有 list.First 这种,与上述三种方法中属于异曲同工之妙,所以不再全部拿出举例。在常用的方法中根据实际情况才用上面几种方法即可。

因为Find方法不会遍历所有记录,找到第一个后立刻返回,但缺点是只能在List中使用。
而FirstOrDefault则在集合类型下都可以使用,但是它会遍历所有的记录。
在通用性和效率的共同驱使下,让我们不得不针对不同情况做出不同选择。正所谓鱼与熊掌不可兼得。

所以结论就是:
在使用List情况下使用 Find,而在其他IEnemrable类型时使用 FirstOrDefault 最佳。


以上是关于100个 Unity实用技能☀️ | C#泛型集合常用方法,查找符合要求的第一个元素并返回的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能☀️ | C#中 Add 和 AddRange 的区别 及 使用示例

100个 Unity实用技能☀️ | C#中 Add 和 AddRange 的区别 及 使用示例

100个 Unity实用技能☀️ | C# 检查字典中是否存在某个Key的几种方法

100个 Unity实用技能☀️ | C# 中 Sort() 对List中的数据排序的几种方法 整理总结

100个 Unity实用技能☀️ | Unity中检测 设备麦克风权限

100个 Unity实用技能☀️ | Unity 通过自定义菜单将资源一键导出