草庐IT

字典序法

全部标签

c# - 使用 DataContractJsonSerializer 将 JSON 反序列化为字典

这个问题在这里已经有了答案:DeserializingaJSONobjecthierarchyintoahierarchyofDictionary(2个答案)关闭4年前。我在响应中收到以下JSON结果:{"result":{"":-41.41,"ABC":0.07,"XYZ":0.00,"Test":0.00}}我已经为反序列化准备了以下类:[DataContract]publicsealedclassRpcResponse{[DataMember(Name="result")]publicList>Result{get;set;}}然而,当我试图用DataContractJsonSe

c# - ASP.NET MVC : ModelState vs. 模型状态字典

我有一个服务,它有一个在触发某个Controller方法时调用的方法。我的服务返回一个自定义结果对象PlacementResult,我想在其中将可能发生(验证)的错误传回Controller方法。PlacementResult是否应该有一个ModelState或ModelStateDictionary来将错误传回Controller(并最终查看)?我如何将它们串在一起?最后,我如何将ModelState/ModelStateDictionary(您告诉我应该选择哪个)放回View中(突出显示相应的文本框、显示错误消息等)?谢谢! 最佳答案

c# - 我应该为包含 10 个或更少项目的集合使用字典,还是有更好的选择?

我有一个对象列表,我需要尽快找到一个对象(通过它的名称属性)。我应该使用什么数据结构?我知道我可以使用字典,但列表中的项目永远不会超过10个,如果我没记错的话,如果集合包含10个或更少的项目,字典将实现为一个数组。谢谢。 最佳答案 MSDN推荐ListDictionary对于包含10个或更少项目的集合:ThisisasimpleimplementationofIDictionaryusingasinglylinkedlist.ItissmallerandfasterthanaHashtableifthenumberofelement

c# - 使用 linq 合并 2 个具有重复键的字典

如何合并IDictionary的2个词典其中MyObject是一个类实例?IDictionaryd1=newDictionary();d1.Add(guid1,m1);d1.Add(guid2,m2);d1.Add(guid3,m3);IDictionaryd2=newDictionary();d2.Add(guid2,m2);d2.Add(guid3,m3);d2.Add(guid4,m4);IDictionaryd3=d1.Union(d2)???d3有以下条目:guid1,m1guid2,m2guid3,m3guid4,m4 最佳答案

c# - 相当于一个允许重复键的排序字典

我需要一个数据结构,可以按对象关联的浮点键对对象进行排序,最低的在前。问题是键代表成本,所以经常有重复,我不关心这个,因为如果两个成本相同,我会捕获第一个,因为它没有区别,问题是编译器提示。是否有一种数据结构的行为方式相同但允许重复键?编辑-我仍然需要重复项,因为如果一个结果是死胡同,我会捕获下一个(它们是a*搜索中的节点)所以为了清楚起见,它需要允许按顺序排序的重复键。 最佳答案 你写:equivalenttoadictionarythatallowsduplicatekeysIneedadatastructurethatcans

C# 字典,2 个值

使用一个键并提取两个值的最佳C#数据结构是什么?基本上我需要一个Dictionary.有这样的吗? 最佳答案 如果您使用的是.NET4,则可以使用Dictionary>如果你不是,你可以创建你自己的Tuple类型,它的工作方式相同:)或者,如果您只在一个地方需要它,您可以创建自己的类型,使用适当的名称巧妙地封装两个字符串。例如:publicsealedclassNameAndAddress{privatereadonlystringname;publicstringName{get{returnname;}}privatereado

c# - 这个非锁定的 TryGetValue() 字典访问线程安全吗?

privateobjectlockObj=newobject();privateDictionarydict=newDictionary();publicstringGetOrAddFromDict(intkey){stringvalue;//non-lockedaccess:if(dict.TryGetValue(key,outvalue))returnvalue;lock(this.lockObj){if(dict.TryGetValue(key,outvalue))returnvalue;stringnewValue="valueof"+key;//placelongoperat

c# - 作为字典键的整数数组

我希望有一个使用整数数组作为键的字典,如果整数数组具有相同的值(甚至不同的对象实例),它们将被视为相同的键。我应该怎么做?以下代码不起作用,因为b是不同的对象实例。int[]a=newint[]{1,2,3};int[]b=newint[]{1,2,3};Dictionarydic=newDictionary();dic.Add(a,"haha");stringoutput=dic[b]; 最佳答案 您可以创建一个IEqualityComparer来定义字典应该如何比较项目。如果项目的顺序是相关的,那么这样的事情应该有效:publi

c# - 使用 wpf 在列表框中绑定(bind)字典的键和值

我正在尝试将字典的键绑定(bind)到列表框中的一行网格,并将字典的值绑定(bind)到网格的另一行。键的类型是Book,我写的一个类,值的类型是int。我想在网格中写入类的元素和整数值。你能帮我吗?我对确定itemsSource和要绑定(bind)的数据类型感到很困惑。谢谢你的帮助编辑:我忘了说我正在使用c#-wpf。=)我将字典作为itemsSource发送,并将字典指定为objectdataprovider标记中的类型,并尝试通过以下代码发送值(int):并且所选项目显示为[myNameSpace.Book,4]而不是只有4。BookListBox.ItemsSource=Lib

c# - 字典枚举关键性能

我担心使用枚举作为键的通用字典。如下页所述,对键使用枚举将分配内存:http://blogs.msdn.com/b/shawnhar/archive/2007/07/02/twin-paths-to-garbage-collector-nirvana.aspx我已经测试并确认了该行为,它在我的项目中引起了问题。为了可读性,我相信对键使用枚举非常有用,对我来说最佳解决方案是编写一个实现IDictionary的类。,这将在内部使用整数作为键。原因是我不想更改所有现有词典以使用整数作为键,并进行隐式转换。这将是最好的性能明智的做法,但它会在一开始给我做很多工作,并且会降低可读性。所以我尝试了