当我想在我的类之外将值类型设置为只读时,我会这样做: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);}}
既然一切都继承自object,那么List之间有什么区别呢?和List?优点?缺点? 最佳答案 如果您插入int进入List,它将被装箱。如果将其插入List,它不会被装箱(对于任何值类型都是如此,将int替换为类型的名称)。同样,从List中检索值,拆箱会发生,但不会发生List.List是强类型的,List不是(所以你失去了编译时的安全性,并且可能会遇到运行时爆炸)。 关于c#-List和List的区别?,我们在StackOverflow上找到一个类似的问题:
我的C#应用程序中的List有一些奇怪的问题。这一定是分配错误或者我做错了什么(我是普通的C#开发人员)。让我举一个接近我的台词的例子:ListMyPrimaryList=newList();ListMySecondaryList=newList();String[]array;StringarrayList="one,two,three,four,five";array=arrayList.Split(',');MyPrimaryList.Add(array);MySecondaryList.Add(array);MyPrimaryList[0][0]+="half";所以现在我希望
换句话说,如果有的话,下面哪个会更快?ListmyList;......foreach(WhateverwhateverinSomeOtherLongList){...if(i或ListmyList;......intlistCount=myList.Count;foreach(WhateverwhateverinSomeOtherLongList){...if(i谢谢:) 最佳答案 Count只是一个整数。当你问它的值(value)时,它不会被计算出来。它是“预先计算的”,所以是一样的。选项1更具可读性:)
要使用ConvertAll()这么棒的函数,我必须把IList转换成List,很痛苦。 最佳答案 请注意List是IList的实现具有实际存储,即它在后台保存一个数组。一般来说,一个IList可以是其他东西的代理。在db4o和linqtosql中,您的IList可以“指向查询”,即访问列表将触发数据库操作。这样,您可以执行myList.Skip(600).Take(20);执行分页,只有在这一步才会执行实际的查询。List包含一百万个条目将是巨大的,而可能有IList有一个巨大的Count,但不要占用大量内存-只要您不访问这些元素。
我需要能够在一个集合中拥有独特的元素。我打算使用字典,这样我就可以使用ContainsKey方法,但我认为这会很浪费,因为我不会使用键/值对的值属性。我遇到了HashSet这看起来很有前途。我唯一能找到但在List中找不到的东西文档是HashSet是无序的。我认为这很好,我认为这意味着它不是使用IEqualityComparer订购的.只要项目的添加顺序在相同的索引位置,我认为就可以了,因为我必须进行重复检查,因此哈希集然后检查所有条目是否顺序。在比较这两种类型时,我还遗漏了什么吗? 最佳答案 不,重要的是HashSet没有任何排序
我正在使用.NET3.5。为什么我仍然得到:doesnotcontainadefinitionfor'Distinct'使用此代码:usingSystem.Collections.Generic;//......codeListWords=newList();//manystringsaddedhere...Words=Words.Distinct().ToList(); 最佳答案 你是吗usingSystem.Linq;?Distinct是System.Linq.Enumerable中定义的扩展方法,因此您需要添加该using语句
我不希望我的列表是固定类型的。相反,我希望List的创建取决于变量的类型。此代码不起作用:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections.Generic;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){stringsomething="Apple";Typetype=something.GetType();Listlist=null;Con
我正在尝试查找与以下代码等效的LINQ:NameValueCollectionnvc=newNameValueCollection();Listdonations=newList();donations.Add(newBusinessLogic.Donation(0,"","","");donations.Add(newBusinessLogic.Donation(0,"","","");donations.Add(newBusinessLogic.Donation(0,"","","");for(vari=0;i我希望我可以使用类似的东西:NameValueCollectionnvc
我有以下代码:[UnmanagedFunctionPointer(CallingConvention.Cdecl)]publicdelegatevoidPanicFuncDelegate(stringstr,IntPtrargs);privatevoidPanicFunc(stringstr,IntPtrargs){LogFunc("PANIC",str,args);}publicvoidLogFunc(stringseverity,stringstr,IntPtrargs){vprintf($"[{severity}]"+str,args);}[DllImport("libc.so.