草庐IT

字典序法

全部标签

c# - 如何在字典中插入第一个元素?

我有一个字典结构,里面有多个键值对。myDict.Add(key1,value1);myDict.Add(key2,value2);myDict.Add(key3,value3);我的词典用作某些控件的数据源。在控件的下拉列表中,我看到项目是这样的:key1key2key3顺序看起来和我的字典一模一样。我知道Dictionary不像arrayList-你可以获得索引左右。我不能使用sortedDictionary。现在我需要在我的程序的某个点向这个字典添加一个键值对,我希望它和我这样做有同样的效果:myDict.Add(newKey,newValue);myDict.Add(key1,

c# - 反转字典中的键和值

我想反转字典的键和值。即来自源字典Dictionary,我想得到Dictionary>.有List因为该值可以在不同键下多次出现在源字典中。例子:{1:"A"2:"A"3:"A"4:"B"5:"B"6:"C"7:"D"}将转换为:{"A":[1,2,3]"B":[4,5]"C":[6]"D":[7]}感谢您的帮助。编辑:好的,在你们的帮助下,我对这个算法有了一些了解。现在我看到了两种可能的解决方案(以及其他),但不知道它们之间的真正区别是什么,因为结果似乎是一样的。是否存在任何性能问题?varbyLookup=actions.ToLookup(pair=>pair.Value,pair

c# - 我应该在访问字典之前检查特定键是否存在于字典中吗?

我是否应该检查字典中是否存在特定键如果我确定它会在我到达访问它的代码时添加到字典中?有两种方法可以访问字典中的值检查ContainsKey方法。如果它返回true,那么我将使用字典对象的索引器[key]进行访问。或TryGetValue将返回true或false以及通过out参数返回值。(如果我想获得值(value),第二个将比第一个表现更好。Benchmark。)但是,如果我确定访问全局字典的函数肯定有key,那么我是否仍应使用TryGetValue检查或不检查我应该使用indexer[]。或者我永远不应该假设并始终检查? 最佳答案

c# - 将查询字符串作为路由值字典添加到 ActionLink

我正在尝试创建一个ActionLink以从网格中导出数据。网格根据查询字符串中的值进行过滤。这是url的示例:http://www.mysite.com/GridPage?Column=Name&Direction=Ascending&searchName=text这是将我的ActionLink添加到页面的代码:@Html.ActionLink("ExporttoExcel",//linktext"Export",//actionname"GridPage",//controllernameRequest.QueryString.ToRouteDic(),//routevaluesne

c# - 键是一对整数的字典

我需要使用字典,其中TKey是一对整数。我考虑过使用KeyValuePair作为我的key类型,我想知道这是否是最好的解决方法。我也很想知道字典是否会为具有相同整数的两个不同的KeyValuePair对象创建单独的条目以及为什么。例如:varmyDictionary=newDictionary,string>();myDictionary.Add(newKeyValuePair(3,3),"FirstItem");myDictionary.Add(newKeyValuePair(3,3),"SecondItem");//doesthedictionaryallowthis?

C# 字典到 .csv

我有C#Dictionary,我想从中创建一个.csv文件。例如我有这本字典:Dictionarydata=newDictionary();data.Add("0","0.15646E3");data.Add("1","0.45655E2");data.Add("2","0.46466E1");data.Add("3","0.45615E0");我想要这个.csv文件输出:0;0.15646E3;1;0.45655E2;2;0.46466E1;3;0.45615E0;我该怎么做? 最佳答案 也许是最简单的:Stringcsv=Str

c# - 使用 LINQ 和 LINQ 扩展计算字典中的值

我有一本看起来像这样的字典:Dictionary>test1:1,3,4,5test2:2,3,6,7test3:2,8如何使用LINQ和LINQ扩展获取所有值的计数? 最佳答案 假设您有:Dictionary>dict=...如果你想要列表的数量,很简单:intresult=dict.Count;如果你想要所有列表中所有字符串的总数:intresult=dict.Values.Sum(list=>list.Count);如果您想要计算所有列表中所有不同字符串的数量:intresult=dict.Values.SelectMany(

c# - C# 字典的原子 AddOrUpdate

假设如下代码:if(myDictionary.ContainsKey(aKey))myDictionary[aKey]=aValue;elsemyDictionary.Add(aKey,aValue);这段代码访问字典两次,一次是判断aKey是否存在,另一次是更新(如果存在)或者添加(如果不存在)。我想当这段代码只执行几次时,这种方法的性能是“可以接受的”。但是,在我的应用程序中,类似的代码大约执行了50万次。我分析了我的代码,它显示80%的CPU时间花在了这部分(见下图),因此这激发了改进。请注意,字典是lambdas。第一个解决方法很简单:myDictionary[aKey]=aV

c# - 澄清 C# 字典上的读写

在本声明的上下文中,ADictionarycansupportmultiplereadersconcurrently,aslongasthecollectionisnotmodified.Evenso,enumeratingthroughacollectionisintrinsicallynotathread-safeprocedure.Intherarecasewhereanenumerationcontendswithwriteaccesses,thecollectionmustbelockedduringtheentireenumeration.Toallowthecollect

c# - c# 的磁盘支持字典/缓存

我正在寻找用于缓存大量数据的简单解决方案。相关问题,但针对不同的语言:PythonDisk-BasedDictionaryDisk-backedSTLcontainerclasses?以不同的方式结束问题:LookingforasimplestandalonepersistantdictionaryimplementationinC#我不需要(或不想为)持久性、事务、线程安全或类似的东西付出任何代价,并且想要一些使用起来不比List或Dictionary复杂多少的东西。如果我必须编写代码,我会将所有内容作为文件保存在临时目录中:stringGet(inti){File.ReadAllT