Tag: 字典

NUnit:字典断言

我想在NUnit中使用一个衬垫来断言两个字典是否相同。 即,我想要一个以下代码的简洁版本: public static void DictionaryAssert(Dictionary dictionaryResult, Dictionary expectedResult) { Assert.AreEqual(dictionaryResult.Count, expectedResult.Count); foreach (var aKey in expectedResult.Keys) { Assert.AreEqual(expectedResult[aKey], dictionaryResult[aKey]); } } 当然不是那么困难,但我找不到参考,任何想法?

C#Dictionary按索引获取项目

我试图制作一个方法,从我的字典中随机返回一个名片。 我的字典:第一个定义卡的名称是字符串,第二个是该卡的值,即int。 public static Dictionary _dict = new Dictionary() { {“7”, 7 }, {“8”, 8 }, {“9”, 9 }, {“10”, 10 }, {“J”, 1 }, {“Q”, 1 }, {“K”, 2 }, {“A”, 11 } }; 方法:随机随机生成int。 public string getCard(int random) { return Karta._dict(random); } 所以问题是: cannot convert from ‘int’ to ‘string’ 有人帮我怎么做才能得到这个名字?

MVC3字典没有绑定到模型

我有一个包含字典属性的模型。 (这已从一个较大的项目中提取到这个例子中,我已经确认它仍然有同样的问题) public class TestModel { public IDictionary Values { get; set; } public TestModel() { Values = new Dictionary(); } } 一个控制器 public class TestController : Controller { public ActionResult Index() { TestModel model = new TestModel(); model.Values.Add(“foo”, “bar”); model.Values.Add(“fizz”, “buzz”); model.Values.Add(“hello”, “world”); return View(model); } [HttpPost] public ActionResult Index(TestModel model) { // model.Values […]

用JSON解析C#字典

我正在尝试使用JSON从我的C#应用​​程序中检索键/值对的字典,但我在某个地方搞砸了。 这是我第一次使用JSON,所以我可能只是在做一些愚蠢的事情。 C#代码: else if (string.Equals(request, “getchat”)) { string timestamp = DateTime.Now.ToString(“yyyy.MM.dd hh:mm:ss”); Dictionary data = new Dictionary(); data.Add(timestamp, “random message”); data.Add(timestamp, “2nd chat msg”); data.Add(timestamp, “console line!”); return Response.AsJson(data); } 使用Javascript: function getChatData() { $.getJSON(dataSource + “?req=getchat”, “”, function (data) { $.each(data, function(key, val) { addChatEntry(key, val); } }); }

将匿名类型的List 转换为Dictionary <string,SortedList >

我有一个函数创建一个本地List ,其中对象是一个匿名类型。 我需要在Dictionary<string, SortedList>返回这些结果。 数据列表如下所示。 { Security = “6752 JT”, Date = {1/17/2011 12:00:00 AM}, zScore = 1 } { Security = “6753 JT”, Date = {1/17/2011 12:00:00 AM}, zScore = 2 } { Security = “6754 JT”, Date = {1/17/2011 12:00:00 AM}, zScore = 3 } { Security = “6752 JT”, Date = {1/18/2011 […]

我应该在我的class级中使用哪个NHibernate.Mapping.Attribute来映射字典?

我正在使用NHibernate,我直接用属性映射我的对象。 我见过类似的问题,但大多数情况下人们使用映射文件…或者他们给出了不再存在的链接的答案:)对于下面的类,我必须为属性表添加哪些属性表是一个IDictionary? 我猜它有点像[Map]但有哪些属性和/或元素? 我在哪里可以找到一些文件? [Class(Table = “SpecificitySets”, Name = “ZslSpecificityTable”)] public class SpecificityTable { [Id(0, TypeType = typeof(ulong), Name = “Id”)] [Generator(1, Class = “native”)] public uint Id [Map(Name = “specificityMapping”, Table = “SpecificityMapping”)] // and then ?? public virtual IDictionary Table { get; private set; } // … }

C#中带有两个哈希函数的字典?

我有一个巨大的(>> 10米)条目列表。 每个条目都提供两个哈希函数: 便宜:快速计算哈希值,但其分布很糟糕(可能将99%的项目放在1%的哈希空间中) 昂贵:需要花费大量时间进行计算,但分布也要好得多 普通的字典让我只使用其中一个哈希函数。 我想要一个首先使用廉价哈希函数的字典,并在碰撞中检查昂贵的哈希函数。 为此,在词典中使用字典似乎是个好主意。 我目前基本上使用这个怪物: Dictionary<int, Dictionary<int, List>>; 我改进了这个设计,所以只有当实际上有两个相同的廉价哈希项时才会调用昂贵的哈希。 它完美地适合我,并为我做了一个完美的工作,但它看起来应该已经死了6500万年前。 据我所知,此function未包含在基本框架中。 我即将写一篇DoubleHashedDictionary类,但我想先了解你的意见。 至于我的具体情况: 第一个哈希函数=文件系统目录中的文件数(快)第二个哈希函数=文件大小的总和(慢) 编辑: 更改了标题并添加了更多信息。 添加了非常重要的缺失细节

在特定位置添加字典元素

请考虑以下代码: var myDict = new Dictionary(); myDict.Add(“Key1”, 1); myDict.Add(“Key2”, 2); myDict.Add(“Key4”, 4); myDict.Add(“Key5″, 5); foreach (KeyValuePair pair in myDict) { Console.Write(pair.Key + @” –> “); Console.WriteLine(pair.Value); } myDict.Add(“Key3″, 3); foreach (KeyValuePair pair in myDict) { Console.Write(pair.Key + @” –> “); Console.WriteLine(pair.Value); } 我想要做的是在”Key2″和”Key4″之间插入”Key3” “Key4” 。 为简单起见,我以此为例。 我知道我可以使用SortedDictionary,我可以让这个例子起作用。 我需要能够具体做的是,每当我在字典中插入一个新元素时,我总是希望它在第二个元素之后和第三个元素之前插入它。 我怎么能做到这一点?

C# – 从字典中获取时锁定资源

我有一个跟踪对象的Dictionary(ClientObject)。 字典和ClientObject都由多个线程访问。 当我修改或读取此字典中的任何对象时,我使用ReaderWriterLockSlim(rwl_clients)在字典上获取读取或写入锁定,然后获取对实际对象的独占锁定。 我只是想知道我是否正确使用这些.net线程设施 例: rwl_clients.EnterReadLock(); ClientObject clobj; if(!m_clients.TryGetValue(key, out clobj)) return; rwl_clients.ExitReadLock(); SomeMethod(clobj); SomeMethod(ClientObject clobj)会执行以下操作: lock(clobj) { /// Read / Write operations on clobj } 从一个线程中的字典中获取和锁定值(ClientObject)是否意味着其他线程将尊重该锁定? 换句话说,.net将字典中的值视为单个资源(而不是副本),因此会尊重所有线程中该资源的锁定吗? 还有一个问题,当从字典中删除资源时 – 我应该在执行Remove()之前将其锁定 例: rwl_clients.EnterWriteLock(); ClientObject clobj; if(m_clients.TryGetValue(key, out clobj)) { lock(clobj) { m_clients.Remove(key); } } rwl_clients.ExitWriteLock(); 我从这个网站上学到了很多,并感谢任何回复! 谢谢。

如何计算传递给Dictionary构造函数的capacity参数的最大值以避免OutOfMemoryException?

与此相关: System.OutOfMemoryException因为大字典 当我让.NET管理我的字典时,我得到了OutOfMemoryException 。 resize方法抛出的exception。 所以我试图通过提供大量的容量来避免resize。 当然,我试图从int.MaxValue开始,以确保它有助于解决问题。 我计划尽可能多地下降。 但是为int.MaxValue抛出了int.MaxValue 。 我决定进行一些二进制搜索,构造函数接受的容量的第一个值变为int.MaxValue / 32 。 这不仅比我预期的要小,而且还令人困惑。 那么有谁有任何想法为什么? 哦,项目设置设置为使用x64架构。