jjzjj

Collections

全部标签

c# - 如何隐藏接口(interface)的某些成员

我想创建一个实现ICollection的自定义集合。但我不想公开ICollection的一些成员,例如Clear方法。如何实现? 最佳答案 您可以显式实现接口(interface)并隐藏实现:publicclassUrClass:ICollection{voidICollection.Clear(){...}}用户无法调用urClassInstance.Clear()直接,但他们可以调用((ICollection)urClassInstance).Clear()间接地像这样。 关于c#-

c# - 等于 System.Collections.Generic.List<T>... 的方法?

我正在创建一个派生自List的类...publicclassMyList:List{}我已经覆盖了MyListItem的Equals...publicoverrideboolEquals(objectobj){MyListItemli=objasMyListItem;return(ID==li.ID);//IDisapropertyofMyListItem}我也想在MyList对象中有一个Equals方法,它将比较列表中的每个项目,在每个MyListItem对象上调用Equals()。简单地调用...会很好MyListl1=newMyList(){newMyListItem(1),ne

c# - 从 Dictionary<Key, Item> 中移除元素

我有一个字典,其中的项目是(例如):“A”,4“乙”,44“再见”,56“C”,99“D”,46"6672",0我有一个列表:“一个”“C”“D”我想从我的字典中删除所有键不在我的列表中的元素,最后我的字典将是:“A”,4“C”,99“D”,46我该怎么办? 最佳答案 构造新的Dictionary以包含列表中的元素更简单:ListkeysToInclude=newList{"A","B","C"};varnewDict=myDictionary.Where(kvp=>keysToInclude.Contains(kvp.Key)).

c# - CollectionBase 类是否仍然受支持?

我想创建一个继承自CollectionBase的类,但它似乎不支持LINQ扩展!还支持吗?或者有替代解决方案吗? 最佳答案 它仍然受支持,但它已经过时了。您应该始终更喜欢使用System.Collections.Generic中定义的集合或System.Collections.ObjectModel命名空间,而不是。您也可以继承其中一个通用集合来创建您自己的自定义强类型集合。它将完全支持LINQ,因为他们已经实现了IEnumerable.List或Collection是适合您的情况的好选择。避免非通用集合,如CollectionBa

c# - 在列表上创建哈希值?

我有一个List其中有50个实例。每个实例都有1或2个独特的属性,但在某种程度上它们都是唯一的,因为列表中的位置只有一个,等等。我想想出一种独特的方法来“散列”这个列表,使其与所有其他列表不同。在.NET4中是否有一种聪明的方法来做到这一点?目的是为列表创建一种“monniker”,以便可以将它们转储到队列中,并在以后根据它们的唯一值找到它们。谢谢。 最佳答案 长话短说publicstaticintGetSequenceHashCode(thisIListsequence){constintseed=487;constintmodi

c# - 可以锁定 System.Collections.Generic.List<t> 吗?

我一直在阅读有关syncroot元素的信息,但我在List类型中找不到它。那么System.Collections.Generic.List类型应该如何进行多线程同步呢? 最佳答案 你找不到它的原因是因为它是explicitlyremoved.如果它真的是你想做的,使用SynchronizedCollection或者创建一个专用的同步对象。最好的方法(通常)是创建一个专用的同步对象,正如Winston所说明的那样。SyncRoot的本质问题特性是它提供了一种错误的安全感——它只能处理非常有限的情况。开发人员经常忽略整个逻辑操作的同步

c# - 从 htmldocument :HTMLAgilityPack 中删除 html 节点

在我的代码中,我想删除没有src值的img标签。我正在使用HTMLAgilitypack的HtmlDocument对象。我发现没有src值的img并试图将其删除..但它给我错误Collectionwasmodified;枚举操作可能无法执行。谁能帮我这个?我使用的代码是:foreach(HtmlNodenodeindoc.DocumentNode.DescendantNodes()){if(node.Name.ToLower()=="img"){stringsrc=node.Attributes["src"].Value;if(string.IsNullOrEmpty(src)){no

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

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

c# - Xunit.Assert.Collection 中的问题 - C#

我有一个类库,它包含以下模型和方法型号:publicclassEmployee{publicintEmpId{get;set;}publicstringName{get;set;}}方法:publicclassEmployeeService{publicListGetEmployee(){returnnewList(){newEmployee(){EmpId=1,Name="John"},newEmployee(){EmpId=2,Name="AlbertJohn"},newEmployee(){EmpId=3,Name="Emma"},}.Where(m=>m.Name.Contai

c# - 处理只读 List<T> 成员时应该如何使用属性

当我想在我的类之外将值类型设置为只读时,我会这样做:publicclassmyClassInt{privateintm_i;publicinti{get{returnm_i;}}publicmyClassInt(inti){m_i=i;}}我该怎么做才能制作List在我的类(class)之外输入只读(这样他们就不能在其中添加/删除元素)?现在我只是宣布它公开:publicclassmyClassList{publicListli;publicmyClassList(){li=newList();li.Add(1);li.Add(2);li.Add(3);}}