gpt4 book ai didi

.net - 为什么我要把我的元素放在袋子里?

转载 作者:行者123 更新时间:2023-12-01 15:10:06 25 4
gpt4 key购买 nike

我刚刚看到一个关于 System.Collections.ConcurrentBag<T> 的问题类,我看到了 ViewBag Controller的属性(property)在 ASP.NET MVC 中。根据我的经验,我了解到,如果您了解人们编写代码的确切目的,那么使用他们的代码会更容易。我认为关于 List<T> 是什么非常直观。或Dictionary<TKey,TValue>ReadOnlyCollection<T>是为了代表。一个Bag另一方面就不那么直观了。

所以,我的问题是:这是什么 Bag隐喻意味着代表,特别是关于 .NET 框架?

最佳答案

ConcurrentBag<T>是一个线程安全的、无序的项目序列,可以包含重复项。

与其他一些集合相比:

  • 它是无序的,就像 HashSet<T>但与List<T>不同
  • 它可以包含重复项,例如 List<T>但与HashSet<T>不同
  • 这只是值而不是 map (与 Dictionary<TKey, TValue> 不同)
  • 与所有非并发集合不同,它是线程安全的 - 因此您可以在多个线程(所有读取和写入)之间共享一个实例。

可能的用途包括您不关心顺序的工作队列(否则您将使用 ConcurrentQueue/ConcurrentStack )或项目列表,您在获取项目后始终应用排序顺序数据到另一个“本地”集合。

关于.net - 为什么我要把我的元素放在袋子里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com