草庐IT

class_list

全部标签

c# - 禁止对 List<T> 公开添加和删除

在我的C#项目中,我有一个包含列表的类publicclassMyClass{publicMyClassparent;publicListchildren;...}我想阻止类的用户向子列表添加(和删除)一个元​​素,但他仍然能够解析它的元素。我想处理MyClass中的添加和删除,提供AddChild(MyClassitem)和DeleteChild(MyClassitem)以确保在将项目添加到子列表时,将正确设置该项目的父项。除了实现我自己的IList之外,你知道如何做到这一点吗?提前致谢,弗兰克 最佳答案 如果您将List交给来电者

c# - 为什么会有 List<T>.BinarySearch(...)?

我正在查看List,我看到一个带有一些重载的BinarySearch方法,我不禁想知道在List中使用这样的方法是否有意义?除非列表已排序,否则为什么我要进行二分查找?如果列表未排序,调用该方法只会浪费CPU时间。在List上使用该方法有什么意义? 最佳答案 除了其他正确答案外,我还注意到二分查找出奇地难以正确编写。有很多极端情况和一些棘手的整数运算。由于二分搜索显然是排序列表上的常见操作,BCL团队通过一次正确编写二分搜索算法而不是鼓励客户都编写自己的二分搜索算法来为世界提供服务;很多客户编写的算法都是错误的。

c# - List<> Capacity 返回的项目多于添加的项目

List上有几个属性这似乎与列表中的项目数量有关-Capacity,Count(作为属性和方法存在)。这非常令人困惑,尤其是与Array相比那只有Length.我正在使用List.Capacity但它给出了意想不到的结果:Listfruits=newList();fruits.Add("apple");fruits.Add("orange");fruits.Add("banana");fruits.Add("cherry");fruits.Add("mango");Console.WriteLine("theListhas{0}itemsinit.",fruits.Capacity);

c# - 带有通用对象列表的 List.Contains(item)

如果您有一个列表,如果指定的属性或属性集合存在,您如何返回该项目?publicclassTesting{publicstringvalue1{get;set;}publicstringvalue2{get;set;}publicintvalue3{get;set;}}publicclassTestingList{publicvoidTestingNewList(){vartestList=newList{newTesting{value1="Value1-1",value2="Value2-1",value3=3},newTesting{value1="Value1-2",value2

c# - 为什么这些是 "Special Classes"?

看完thisquestion问“特殊类”到底是什么,我剩下的问题是为什么这六个类System.Object、System.Array、System.Delegate、System.Enum和System.ValueType被选中并且hard-coded作为特殊类,防止它们被用作泛型类或方法的约束。很容易理解为什么System.Object在那里;所有类都继承System.Object,因此无需将其作为约束包含在内。我不清楚的是,为什么其他人被选为这个特殊类(class)类别的一部分。PS:当尝试将特殊类用作约束时,特殊类会引发编译错误CS0702。 最佳答案

c# - 我的控件是 "not allowed here because it does not extend class ' System.Web.UI.UserControl'”

所以我有另一个刮面器(无论如何对我来说)。我正在尝试在CMS中创建我自己的自定义控件,我只有部分源代码(即供应商提供给我的示例)。基本上,我创建了一个名为DataDefinitionContent的类,它扩展了ControlBase。现在,根据我从元数据中获得的信息,ControlBase扩展了UserControl,所以我原以为这不会发生什么戏剧性的事情。谁能阐明为什么这对我不起作用?我的类(class):publicpartialclassDataDefinitionContent:ControlBase,ICustomControl{...Stuff}控制库:usingSyste

c# - 为什么 List<double> 显式转换为 IEnumerable<object> 会抛出异常?

根据这个MSDNreferenceIEnumerable是协变的,这可以将对象列表隐式转换为可枚举对象:IEnumerablestrings=newList();IEnumerableobjects=strings;在我自己的代码中,我写了一行代码,当列表的项目类型是Point类时,它可以完美运行(Point是一个简单的类,具有三个双x、y、z属性):varobjects=(IEnumerable)dataModel.Value;//herepropertyValueisalistthatcouldbeofanytype.但是当列表的项类型为double时,上面的代码返回以下异常:Un

c# - Casting List<T> - 协方差/逆变问题

给定以下类型:publicinterfaceIMyClass{}publicclassMyClass:IMyClass{}我想知道如何转换List到List?我对协变/逆变主题不是很清楚,但我知道我不能因此而简单地使用List。我只能想出这个微不足道的解决方案;缺乏优雅,浪费资源:...publicListConvertItems(Listinput){varresult=newList(input.Count);foreach(varitemininput){result.Add(item);}returnresult;}....如何以更优雅/更高效的方式解决它?(请注意,我需要.N

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - MVC 5 : Should I inherit my User from IdentityUser class?

我正在尝试学习Asp.NetIdentity和在这个tutorial,在Models\AppModels,cs部分创建EntityFramework代码优先ToDo模型MyUser类(class)继承自IdentityUser类和MyDbContext继承自IdentityDbContext类(class)。这是为什么?假设我有一个User包含我的Web应用程序用户的所有信息的类,该类是否应该继承自IdentityUser,我的DbContext是否应该继承?继承自IdentityDbContext?此外,从IdentityDbContext继承dbcontext类的优点是什么?平原D