草庐IT

activity_custom_lists

全部标签

c# - “不要公开通用列表”,为什么在方法参数中使用 collection<T> 而不是 list<T>

我正在使用FxCop,它显示“不要公开通用列表”的警告,建议使用Collection而不是List.首选它的原因,我知道所有这些东西,如thisSOpost中所述和MSDN以及我浏览过的更多文章。但我的问题是,我很少有方法可以进行如此繁重的计算,并且方法接受List的参数。就性能而言,这应该更快更好。但是FxCop也为此发出警告。所以一个选择是我应该将参数声明为Collection,然后使用ToList()在方法内部,然后使用它。那么优化了哪一个呢?“抑制这种情况下的警告”或“在参数中使用Collection,然后在方法本身内部使用ToList()”。 最佳

c# - Autofac 没有找到带有 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' 的构造函数

Noneoftheconstructorsfoundwith'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'ontype'LMS.Services.Security.EncryptionService'canbeinvokedwiththeavailableservicesandparameters:Cannotresolveparameter'LMS.Models.SecuritySettingssecuritySettings'ofconstructor'Void.ctor(LMS.Models.Securi

c# 修改 List<T> 中的结构

简短的问题:如何修改List中的单个项目?(或者更准确地说,struct的成员存储在List中?)完整解释:首先,下面使用的struct定义:publicstructitemInfo{...(Strings,Chars,boring)...publicStringnameStr;...(yougettheidea,nothingfancy)...publicStringsubNum;//BTWthisistheelementI'mtryingtosorton}publicstructslotInfo{publicCharcatID;publicStringsortName;public

c# - WPF 最佳实践 : Do custom controls work well with the MVVM design?

我正在考虑创建一个可以在我的页面上重复使用的通用控件:一个具有Address1、Address2、City、State、Zip等的AddressControl...最初我只是创建了一个包含所有这些项目的类(AddressEntity)并实现了INotifyPropertyChanged。我将该类作为DependencyProperty包含在我的AddressControl的代码隐藏中,并将其用作绑定(bind)到其属性的DataContext。然后,有人说我的代码很丑,我应该看看MVVM。看着它,我假设:AddressEntity.cs将只是数据(即Address1、Address2等

c# - List<T> 的深拷贝

我正在尝试对通用列表进行深度复制,想知道是否还有其他方法可以创建复制方法并一次实际复制每个成员。我有一个看起来有点像这样的类:publicclassData{privatestringcomment;publicstringComment{get{returncomment;}set{comment=value;}}privateListtraceData;publicListTraceData{get{returntraceData;}set{traceData=value;}}}我有上面数据的列表,即List.我想要做的是将List子集的跟踪数据绘制到图形上,可能对数据进行一些缩放

c# - 如何在 C# 中将图像文件上传到 Active Directory 用户配置文件?

我需要一种方法来获取*.jpg图像文件并将其上传到WindowsAD2003的ActiveDirectory中的用户配置文件。还有一种方法可以将照片作为流检索或将其公开为安全Web服务,以供Java等跨平台应用程序调用(该死!我是不是要求太多了!!!)正在上传的文件将是*.jpg,它基本上是用户创建的视觉签名文件。有没有在C#中使用ActiveDirectory的任何经验的人提供一些信息,说明如何在与安全相关的最小影响下完成此操作。从WindowsActiveDirectory管理员的角度来看,他必须使这成为可能。对用户配置文件等架构的更改/规定正在上传图像,以便稍后可以从AD中检索图

c# - C# 3.5 中的 List<int> 初始化

我可以初始化一个ListlikenewList{1,2,3,4,5};然而List没有接受单个参数的构造函数。所以我试图通过调试器运行它,它似乎在调用Add方法。那么编译器如何知道调用哪个方法来添加每个单独的元素。这可能是个愚蠢的问题,但我有点困惑。谢谢 最佳答案 这是一个集合初始化器,一个C#3.0languagefeature.它需要:该类型必须实现IEnumerable(尽管它从未用于初始化)类型必须至少有一个Add方法它只是为每个术语调用Add方法。如果Add接受多个值,例如字典,您也可以使用元组。然后每一项都是{key,v

c# - 为什么 List<T>.Sort 使用 Comparer<int>.Default 比等效的自定义比较器快两倍以上?

结果使用1000万个随机列表ints(每次相同的种子,重复10次的平均值):listCopy.Sort(Comparer.Default)需要314毫秒。使用sealedclassIntComparer:IComparer{publicintCompare(intx,inty){returnxlistCopy.Sort(newIntComparer())需要716毫秒。一些变化:使用structIntComparer而不是sealedclass:771毫秒使用publicintCompare(intx,inty){returnx.CompareTo(y);}:809毫秒评论Compar

c# - List<T>.AddRange() 线程安全吗?

我可以在不锁定的情况下从多个线程安全地调用List.AddRange(r)吗?如果不是,我会遇到什么样的麻烦? 最佳答案 否,itsdocumentation没有说它是线程安全的,因此它不是。Publicstatic(SharedinVisualBasic)membersofthistypearethreadsafe.Anyinstancemembersarenotguaranteedtobethreadsafe.至于哪里会出错,想想AddRange(newItems)做了什么:检查内部数组是否有足够的空间如果不是:分配一个新数组将

c# - Linq/Lambda OrderBy Delegate for List<string> of IP Addresses

给定Listips=newList();我需要按逻辑顺序对IP地址列表进行排序(即“192.168.0.2”出现在“192.168.0.100”之前)。当前(并且正确地,按字母顺序排列)如果列表包含:192.168.0.1192.168.0.2192.168.0.10192.168.0.200ips.OrderBy(p=>p)返回:192.168.0.1192.168.0.10192.168.0.2192.168.0.200 最佳答案 你需要做一个比较器:(已测试)classIPComparer:IComparer{publicin