Tag: dictionary

如何按值排序(自定义排序)词典条目列表

我的哈希表包含(key,Values []) 例如: myHashtable[keys, Values[]] myHashtable.Add[1, Value1]; myHashtable.Add[2, Value2]; myHashtable.Add[3, Value3]; myHashtable.Add[4, Value4]; myHashtable.Add[5, Value5]; 哪里有Value1; Value2,value3,value4和value5如下。 Value1[name = “Smith”] Value1[Title= “Mr”] Value1[Salary = 1000] Value1[Identity = “S”] Value2[name = “Peter”] Value2[Title= “Mr”] Value2[Salary = 1000] Value2[Identity = “A”] Value3[name = “Tom”] Value3[Title= “Mr”] Value3[Salary = 1000] Value3[Identity = “C”] Value4[name = “Marry”] Value4[Title= “Ms”] […]

如何将数据源绑定到List <Dictionary >?

我有一个存储字典条目列表的类。 我想从代码隐藏绑定到gridview的数据源。 字典类型的代码,表示ErrorMessage和失败字段。 public partial class FailedFields { private Dictionary Code_Error = new Dictionary(); public void AddFailedField(string field, string message) { Code_Error.Add(field, message); } public Dictionary GetFailedFields() { return Code_Error; } } 字典条目列表的代码。 public partial class ErrorFieldsList { private static List ErrorList = new List(); public void AddErrorField(Order.FailedFields errs) { ErrorList.Add(errs); } public List GetErrorMessages() […]

Dictionary 的神秘行为

我正在开发一个基于Asp.net MVC 3.0并使用Mono-2.10.8(Windows 7)的庞大系统。 一切都很好,直到几天前。 在我的API中,我有几个使用词典的实用程序类。 例如,像这样: public static class KeyUtility { static KeyUtility() { Alphabet = new[] { ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘X’, ‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ }; ReverseAlphabet = Alphabet […]

在entity framework代码第一种方法中映射字典

我有这样的字典: /// /// Gets the leave entitlement details. /// /// The leave entitlement details. public Dictionary LeaveEntitlementDetails { get; set; } 我想将它映射到数据库。 是否可以使用受保护或私有List ? 如: /// /// Gets the leave entitlement details. /// /// The leave entitlement details. public Dictionary LeaveEntitlementDetails { get; set; } public List LeveEntitlementStore { get { List leaveEntitlements = new […]

索引切换语句,或等效? .net,C#

我想构建一个接受字符串参数的方法,以及一个我希望根据参数返回特定成员的对象。 所以,最简单的方法是构建一个switch语句: public GetMemberByName(MyObject myobj, string name) { switch(name){ case “PropOne”: return myobj.prop1; case “PropTwo”: return myobj.prop2; } } 这样可以正常工作,但我最终可能会找到一个相当大的列表…所以我很好奇是否有一种方法,无需编写一堆嵌套的if-else结构,以索引方式完成此操作,以便匹配字段通过索引找到而不是通过开关掉落直到找到匹配。 我考虑使用Dictionary来快速访问匹配的字符串(作为关键成员)但是因为我想访问传入对象的成员,所以我不确定这是怎么回事实现。 我特意试图避免reflection等,以便实现非常快速。 我可能会使用代码生成,所以解决方案不需要小/紧等。 我最初正在构建一个字典,但每个对象都在初始化它。 所以我开始将它移动到一个方法,可以根据键 – 一个switch语句查找值。 但由于我不再编入索引,我担心调用此方法的连续查找会很慢。 SO:我正在寻找一种方法来结合索引/散列查找(如字典使用)的性能与返回传入对象的特定属性。 我可能会将它放在用于它的每个类中的静态方法中。

查询词典词典?

请问您如何查询字典词典和/或列表字典? private Dictionary<string, Dictionary> masterDict= new Dictionary<string, Dictionary>(); Private Dictionary<string, List> masterList= new Dictionary<string, List>(); 我知道如果我执行以下操作,我会得到masterDict中包含的字典列表,但我不确定如何获取这些字典的值。 foreach (var kvp in masterDictMethod()) { Console.WriteLine(“Key = {0}, Value = {1}”, kvp.Key, kvp.Value); } 谢谢你的期待;)

C#列为字典键

我有一个由List键入的字典: private Dictionary<List, string> Lookup; 我正在尝试使用ContainsKey,但它似乎没有工作,我不知道为什么。 以下是我的Visual Studio立即窗口的调试信息: ?Lookup.Keys.ElementAt(7)[0] {custom_obj} Direction: Down SID: 2540 ?Lookup.Keys.ElementAt(7)[1] {custom_obj} Direction: Down SID: 2550 searchObject[0] {custom_obj} Direction: Down SID: 2540 searchObject[1] {custom_obj} Direction: Down SID: 2550 ?Lookup.ContainsKey(searchObject) false 在我的常识中,最后一个ContainsKey应该是真的。 希望我在这里包含了足够的信息……任何想法? 谢谢!

为什么我们不能在枚举其键时更改字典的值?

class Program { static void Main(string[] args) { var dictionary = new Dictionary() { {“1”, 1}, {“2”, 2}, {“3”, 3} }; foreach (var s in dictionary.Keys) { // Throws the “Collection was modified exception…” on the next iteration // What’s up with that? dictionary[s] = 1; } } } 我完全理解为什么在枚举列表时抛出此exception – 在枚举期间,枚举对象的结构不会改变似乎是合理的。 但是,更改字典的值会改变其结构吗? 具体来说,其键的结构?

带代表或开关的字典?

我正在编写一个解析器,它调用一些依赖于某些值的函数。 我可以用这样的简单开关实现这个逻辑: switch(some_val) { case 0: func0(); break; case 1: func1(); break; } 或者与代表和这样的字典: delegate void some_delegate(); Dictionary some_dictionary = new Dictionary(); some_dictionary[0] = func0; some_dictionary[1] = func1; some_dictionary[some_value].Invoke(); 这两种方法是否相同,哪种方法更受欢迎?

字典与字符串列表作为值

我有一个字典,我的值是List。 当我添加密钥时,如果密钥存在,我想在值(List)中添加另一个字符串? 如果密钥不存在,那么我创建一个带有值的新列表的新条目,如果密钥存在,那么我将jsut添加到List值ex的值。 Dictionary<string, List> myDic = new Dictionary<string, List>(); myDic.Add(newKey, add to existing list and not create new one)