草庐IT

Collections

全部标签

c# - 无法将带有 [] 的索引应用于 mvc Controller 中类型为“System.Collections.Generic.ICollection<int>”的表达式

publicActionResultaddstandardpackage1(ICollectionSingleStay,ICollectionDOUBLESTAY,ICollectionTRIBLESTAY,ICollectionFAMILYSTAY,ICollectionEXTRABED){vars=SingleStay;for(inti=0;i在for循环中,我收到类似无法将带[]的索引应用于类型表达式的错误,但我需要在for循环中,在我得到的每个中。因为基于for循环,我会将详细信息与其他集合列表绑定(bind)。请帮助我。我在varcal=Singlestay[i]中遇到错误。

c# - 找出两本词典之间的区别

是否有LINQ方法来查找两个通用词典之间的差异?与thisquestion相同,但使用通用词典。 最佳答案 vardiff=dicOne.Except(dicTwo).Concat(dicTwo.Except(dicOne)); 关于c#-找出两本词典之间的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8851155/

C# 列表框集合语法

在快速学习C#的同时,我遇到了这个Collection语法问题。我向列表框lstData添加了一些我自己的类型MyItem的对象。现在我需要在这个列表框中搜索并想到使用优雅的LINQ符号,例如:lstData.Items.Where(x=>x.Text==SearchString)但列表框的项目没有.Where(),尽管我确实包含了“usingSystem.Linq;”命名空间。所以我尝试了:foreach(MyItemitemin(MyItem)lstData.Items)但这会产生构建错误:无法将类型“System.Windows.Forms.ListBox.ObjectColle

c# - 'System.Collections.Generic.List<float >' does not contain a definition for ' Sum'

我正在尝试使用内置的Sum()函数对float列表求和,但我不断收到此错误:ErrorCS1061:'System.Collections.Generic.List'doesnotcontainadefinitionfor'Sum'andnoextensionmethod'Sum'acceptingafirstargumentoftype'System.Collections.Generic.List'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)(CS1061)我有usingSystem.Collect

python中的deque模块(collections的deque模块)

目录1.deque是python的collections中的一个类2.deque的简单使用以及它的方法2.1创建deque的方法 2.2创建deque时,并指定大小maxlen,即能装几个元素,以及deque添加元素append()方法2.3 deque的 appendleft()方法2.4 deque的clear()方法2.5 deque的copy()方法2.6deque的count方法2.7deque中的extend()方法2.8 deque中的extendleft()方法2.9deque中的index方法2.10deque中的insert方法2.11deque中的pop方法2.12deq

c# - 从 SortedList 或 SortedDictionary 获取第 i 个值

我有一个已排序的对象集合(它可以是SortedList或SortedDictionary,我主要将其用于阅读,因此增加性能并不那么重要)。我怎样才能得到第i个值?例如当我在集合中有数字1、2、3、4、5并且我想要中位数(在本例中为3)时,我该怎么做? 最佳答案 你可以使用如下代码list.Values[index]用于排序列表。使用SortedDictonary的最简单方法是使用ElementAt()方法:dict.ElementAt(index).Value但是,这比列表情况慢。无论哪种情况,您都需要检查您的计数。如果是奇数,取i

c# - Dictionary<TKey, TValue> 是否比 List<T> 上的 LINQ 更快?

我一般用List用于收藏。但是如果我需要快速查找一个集合,那么例如在下面的示例中,我将使用字典,以便我可以通过id快速查找它:Dictionary但是因为我可以使用LINQ来查询List无论如何,如下所示,是否有任何理由去解决使用字典而不是列表的麻烦?是字典更快还是LINQ在幕后做了一些使其同样快的事情?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]

c# - 双重检查字典 "ContainsKey"上的锁定

我的团队目前正在讨论这个问题。有问题的代码是if(!myDictionary.ContainsKey(key)){lock(_SyncObject){if(!myDictionary.ContainsKey(key)){myDictionary.Add(key,value);}}}我看到的一些帖子说这可能是一个很大的NONO(当使用TryGetValue时)。然而,我们团队的成员说这没问题,因为“ContainsKey”不会迭代key集合,而是通过O(1)中的哈希码检查key是否包含在内。因此他们声称这里没有危险。我想听听您对这个问题的诚实意见。 最佳答案

c# - 高效、不可变、可扩展的 .NET 集合

这个问题在这里已经有了答案:Immutablecollections?(10个答案)关闭9年前。在我看来,.NET极度缺乏安全、不可变的集合类型,尤其是BCL,但我也没有看到其他方面做过多少工作。是否有人对.NET的(最好)生产质量、快速、不可变的集合库有任何指示。快速列表类型是必不可少的。我还没有准备好切换到F#。*编辑:搜索者请注意,这很快就会被纳入BCL:.NETimmutablecollections

c# - 从 'foreach' 中有效地删除项目

目前,我能想到的最好的是:booloneMoreTime=true;while(oneMoreTime){ItemTypetoDelete=null;oneMoreTime=false;foreach(ItemTypeitemincollection){if(ShouldBeDeleted(item)){toDelete=item;break;}}if(toDelete!=null){collection.Remove(toDelete);oneMoreTime=true;}}我知道这里至少有一个额外的变量,但我将其包括在内以提高算法的可读性。 最佳答案