jjzjj

Dictionary

全部标签

c# - Iterating Over ConcurrentDictionary 只读时,ConcurrentDictionary 是否被锁定?

我在我的网络应用程序中创建了一个ConcurrrentDictionary作为应用程序对象。它在session之间共享。(基本上用作存储库。)有时,任何可用的session都会将新项目添加到字典中。仅允许管理员查看现在,我想允许管理员列出字典中的所有值,但管理员不会添加或删除项目,相反我只会提供一种方式让管理员查看通过遍历项目来读取集合中的项目。(伪)代码看起来像这样:foreach(vareinEmployeeCache.Instance.AllEmployees){Console.WriteLine(e.Key);}我的问题是:如果我遍历项目,ConcurrentDictionar

具有唯一键和值的 C# 字典类型

我想知道C#中是否有类似于“字典”的内置类型,但TKey和TValue都必须是唯一的。例如:d.Add(1,"1");d.Add(2,"1");//ThiswouldnotbeOKbecause"1"hasalreadybeenusedasavalue.我知道这有点奇怪,但似乎BCL中有大约10亿个集合类型,它可能存在。有什么想法吗? 最佳答案 使用Dictionary和HashSet/secondaryreverseDictionary怎么样-它将解决问题,并且比检查单个Dictionary的性能更好。像这样的东西,包装成类:Ha

c# - 使用 AutoFixture 生成字典

对于列表,我们可以做fixture.CreateMany>(1000);//with1000elements但是如何用字典来做呢?并且能够指定要生成的元素数量。 最佳答案 您可以简单地创建项目然后构建字典,如下所示:fixture.CreateMany>(1000).ToDictionary(x=>x.Key,x=>x.Value);这或多或少是AutoFixturedoesinternally的内容.另一种选择是创建一个新的ICustomization,拦截任何Dictionary的请求并build它们。它可以使用existing

c# - 将项目添加到字典中的列表

我正在尝试根据键将值放入字典中...例如,如果在索引0处的键列表中有一个字母“a”。我想将索引为0的val添加到键为“a”的字典内的列表中(字典(键为索引0处的“a”,索引0处的val)...字典(键为“b”处索引2,索引2处的val))我期待这样的输出:inlistviewlv1:1,2,4inlistviewlv2:3,5whatI'mgettingis3,4,5inbothlistviewsListkey=newList();Listval=newList();ListtempList=newList();Dictionary>testList=newDictionary>();

c# - 如何将字典转换为查找?

这个问题在这里已经有了答案:LINQConvertDictionarytoLookup(5个答案)关闭8年前。我有一个带有签名的词典:Dictionary>.我想将其转换为带有签名的查找:Lookup.我试过:LookuploginGroups=mapADToRole.ToLookup(ad=>ad.Value,ad=>ad.Key);但这并不是很好。

c# - 在 propertygrid 中使用字典

我想使用propertygrid编辑键值(字符串,字符串)项目列表。当我使用Dictionary作为类型,propertygrid将显示一个GUI,但它似乎没有“启用”,即。我无法添加任何项目。是否支持Dictionary对象,或者是否有任何其他对象可以用来解决这个问题? 最佳答案 我已经按照thiscode做了过去:classDictionaryPropertyGridAdapter:ICustomTypeDescriptor{IDictionary_dictionary;publicDictionaryPropertyGridA

c# - 如何序列化具有 Dictionary<string,object> 属性的对象?

在下面的示例代码中,我得到了这个错误:ElementTestSerializeDictionary123.Customer.CustomPropertiesvomTypSystem.Collections.Generic.Dictionary`2[[System.String,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.Object,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934

c# - 字典、列表还是数组?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我正在编写一项性能至关重要的服务,但我不确定什么是最快的。我有几个对象(50-200),每个对象都有一个ID(整数,例如84397或23845)。拥有一个字典、一个键值对列表或一个索引设置为ID的列表,其余的具有空值或具有相同想法的数组会更快吗?

c# - 如何在 C# 中对两个字典中的值求和?

我有两个结构相同的字典:Dictionaryfoo=newDictionary(){{"Table",5},{"Chair",3},{"Couch",1}};Dictionarybar=newDictionary(){{"Table",4},{"Chair",7},{"Couch",8}};我想将字典的值加在一起,并返回带有键的第三个字典,以及每个键的总值:Table,9Chair,10Couch,9我当前的解决方案是循环遍历字典并以这种方式将它们拉出,但我知道该解决方案不是最高效或最易读的。但是,我在尝试在LINQ中提出解决方案时碰壁了。 最佳答案

c# - 字符串函数字典 c#,其中函数具有不同的参数

基本上我试图在C#中创建一个字符串来函数字典,我已经看到它是这样完成的:Dictionary>但是问题是我想放入字典的函数都有不同数量的不同类型的参数。因此,我该如何制作一本能做到这一点的字典?亚当 最佳答案 您可以使用paramsstring[]参数定义自己的委托(delegate),如下所示:delegateTOutParamsFunc(paramsTIn[]args);然后像这样声明你的字典:Dictionary>functions;所以,你可以这样使用它:publicstaticstringConcat(string[]ar