Tag: 集合

有什么像asynchronousBlockingCollection <T>?

我想await BlockingCollection<T>.Take()asynchronous,所以我不阻塞线程。 寻找像这样的东西: var item = await blockingCollection.TakeAsync(); 我知道我可以这样做: var item = await Task.Run(() => blockingCollection.Take()); 但是这有点杀死了整个想法,因为ThreadPool另一个线程被阻塞了。 有没有其他的select?

使ArrayList只读

在Java中,如何在初始化之后使ArrayList只读(以便任何人都不能添加元素,编辑或删除元素)?

collections的目的是什么?链接地图?

在Python 3.3中,一个ChainMap类被添加到collections模块中: ChainMap类提供了快速链接多个映射,以便它们可以被视为一个单元。 通常比创build新的字典和运行多个update()调用要快得多。 例: >>> from collections import ChainMap >>> x = {'a': 1, 'b': 2} >>> y = {'b': 10, 'c': 11} >>> z = ChainMap(y, x) >>> for k, v in z.items(): print(k, v) a 1 c 11 b 10 这个问题的动机是这个问题的公开(没有PEP创build)。 据我所知,这是一个替代有一个额外的字典和维护与update() 。 问题是: ChainMap覆盖哪些用例? 有什么现实的ChainMap例子? 它是否用于切换到python3的第三方库? 奖金的问题:有没有办法在Python2.x上使用它? 我听说过Transforming Code into Beautiful, […]

哪个更快:清除收集或实例化新的

我的代码中有一些通用列表,有几十个或几百个元素。 有时我需要用其他对象重新填充这个列表,所以问题是:调用Clear()方法或创build一个new List<T>()会更快?

将Dictionary.keyscollection转换为string数组

我有一个Dictionary<string, List<Order>> ,我想有一个数组中的键的列表。 但是,当我select string[] keys = dictionary.Keys; 这不会编译。 如何将KeysCollection转换为string数组?

有没有办法让所有查询string的名称/值对进入一个集合?

有没有办法让所有查询string的名称/值对进入一个集合? 我在.net中寻找一个内置的方式,如果不是的话,我可以在&上加载一个集合。

从ac#Dictionary中删除多个匹配谓词的项目的最佳方法?

我需要从字典中删除多个项目。 一个简单的方法如下: List<string> keystoremove= new List<string>(); foreach (KeyValuePair<string,object> k in MyCollection) if (k.Value.Member==foo) keystoremove.Add(k.Key); foreach (string s in keystoremove) MyCollection.Remove(s); 我不能直接删除foreach块中的项目的原因是,这将抛出一个exception(“集合被修改…”) 我想要做以下事情: MyCollection.RemoveAll(x =>x.Member==foo) 但是Dictionary <>类不像List <> Class那样公开一个RemoveAll(Predicate <> Match)方法。 什么是最好的方式(既明智又明智)做到这一点?

Java 8列表与stream映射

我有一个List<Item>集合。 我需要将其转换为Map<Integer, Item>地图的关键字必须是集合中项目的索引。 我不知道如何做到这一点与stream。 就像是: items.stream().collect(Collectors.toMap(…)); 任何帮助? 由于这个问题被认为是可能的重复我需要补充一点,我的具体问题是 – 如何获得列表中的项目的位置,并把它作为一个关键的价值

字典初始值设定项与集合初始值设定项相比有什么好处

最近有很多关于C#6.0中新增function的讨论 最受关注的function之一是在C#6.0中使用Dictionary初始值设定项 但是,等等,我们一直在使用集合初始化器来初始化集合,并且可以在.NET 4.0和.NET 4.5(不知道旧版本)中很好地初始化Dictionary Dictionary<int, string> myDict = new Dictionary<int, string>() { { 1,"Pankaj"}, { 2,"Pankaj"}, { 3,"Pankaj"} }; 那么在C#6.0中有什么新东西呢,他们在C#6.0中用什么字典初始化器来说话

列出<BusinessObject>或BusinessObjectCollection?

在C#generics之前,每个人都可以通过创build一个实现了IEnumerable的集合库来为他们的业务对象编写集合 IE: public class CollectionBase : IEnumerable 然后从中得到他们的业务对象集合。 public class BusinessObjectCollection : CollectionBase 现在用generics列表类,没有人只是使用它呢? 我发现我使用这两种技术的妥协: public class BusinessObjectCollection : List<BusinessObject> 我这样做是因为我喜欢强types名称,而不是仅仅传递List。 你的方法是什么?