Tag: dictionary

LinqToExcel加载字典

我有以下解决方案但不太优雅。 如果可能的话,我想用ToDictionary来解决这个问题。 谢谢你的帮助,因为我很新。 var excel = new ExcelQueryFactory(@”E:\MAHipotCepaStationProgram.xlsx”); //get list of program names List testNames = new List(); testNames.AddRange(excel.Worksheet().ToList() .Where(s => s[“Program #”].Value.ToString() == “Program Title”) .Select(s => s[1].Value.ToString())); //get list of program numbers List testNumbers = new List(); testNumbers.AddRange(excel.Worksheet().ToList() .Where(s => s[“Program #”].Value.ToString() == “Program #”) .Select(s => Convert.ToInt32(s[1].Value))); //combine them Dictionary programs = […]

.NET SortedDictionary但按值排序

我需要一个像SortedDictionary一样的数据结构,但是它是根据值而不是键来排序的。 当我们在字典中有大约3000个项目时,我需要大约1-2微秒来添加和删除项目。 我的第一个想法是简单地在我的代码中切换键和值。 这几乎是有效的。 通过这样做,我可以在测试中添加和删除大约1.2微秒的元素。 但是密钥必须在SortedDictionary中是唯一的,这意味着我的逆字典中的值必须是唯一的。 在某些情况下,他们可能不会。 .NET库中的某些想法已经对我有用吗?

C#二叉树和字典

我正在努力解决何时使用二叉搜索树以及何时使用字典的概念。 在我的应用程序中,我做了一个小实验,使用了C5库TreeDictionary (我相信是一个红黑二叉搜索树)和C#字典。 字典在添加/查找操作时总是更快,并且总是使用更少的内存空间。 例如,在16809 条目中,字典使用342 KiB,而树使用723 KiB。 我认为BST应该是更高效的内存,但似乎树的一个节点需要比字典中的一个条目更多的字节。 是什么赋予了? BST比词典更好吗? 另外,作为一个附带问题,有没有人知道是否存在更快+更高内存效率的数据结构,用于存储字典类型访问的对,而不是上述任何一种结构?

使用LINQ进行“智能”分组

我有一个字符串列表,我想将其转换为某种分组列表,其中值将按列表中的位置进行分组(不是正常分组,但在某种程度上,相同的项目只在一个组中如果他们在一起)。 请考虑以下示例: LinkedList myList = new LinkedList(); myList.AddLast(“aaa”); myList.AddLast(“aaa”); myList.AddLast(“bbb”); myList.AddLast(“bbb”); myList.AddLast(“aaa”); myList.AddLast(“aaa”); myList.AddLast(“aaa”); LinkedList groupedList = new LinkedList(); groupedList.AddLast(new MyTuple(“aaa”, 2)); groupedList.AddLast(new MyTuple(“bbb”, 2)); groupedList.AddLast(new MyTuple(“aaa”, 3)); 这个转换可以用LINQ完成,还是应该用循环编写算法?

c#dictionary如何为单个键添加多个值?

我创建了字典对象 Dictionary<string, List> dictionary = new Dictionary<string,List>(); 我想将字符串值添加到给定单个键的字符串列表中。 如果密钥尚不存在,那么我必须添加一个新密钥。 List不是预定义的,我的意思是我没有创建任何列表对象,然后提供给dictionary.Add(“key”,Listname) 。 如何在dictionary.Add(“key”,Listname)动态创建此列表对象,然后将字符串添加到此列表中。 如果我必须添加100个密钥,那么在执行dictionary.Add指令之前我是否必须创建100个列表,并且还必须pedefine此列表的内容? 谢谢。