草庐IT

kernel-lt

全部标签

c# - 如何使 IEnumerable<T> 只读?

为什么下面代码的Main方法中的列表list1Instance和p指向同一个集合?classPerson{publicstringFirstName=string.Empty;publicstringLastName=string.Empty;publicPerson(stringfirstName,stringlastName){this.FirstName=firstName;this.LastName=lastName;}}classList1{publicListl1=newList();publicList1(){l1.Add(newPerson("f1","l1"));l1

c# - 对于接口(interface) : T[], IEnumerable<T>、IList<T> 或其他接口(interface),您更喜欢哪个?

好的,我希望整个社区能够帮助我们解决已经持续了一段时间的职场辩论。这与定义接受或返回某种类型列表的接口(interface)有关。有几种方法可以做到这一点:publicinterfaceFoo{Bar[]Bars{get;}IEnumerableBars{get;}ICollectionBars{get;}IListBars{get;}}我自己的偏好是使用IEnumerable作为参数,使用数组作为返回值:publicinterfaceFoo{voidDo(IEnumerablebars);Bar[]Bars{get;}}我对这种方法的看法是,实现类可以直接从IEnumerable创建

c# - 如何使用 C# 在 <strong> 标签之间提取字符串?

假设我有一个如下所示的字符串:"UnneededtextNeededTextMoreunneededtext"如何只提取“需要的文本”?我猜Regex可能是最简单的方法,但Regex对我来说仍然像象形文字。 最佳答案 Regexregex=newRegex("(.*)");varv=regex.Match("UnneededtextNeededTextMoreunneededtext");strings=v.Groups[1].ToString(); 关于c#-如何使用C#在标签之间提取

c# - 在 C# 中将 List<string> 转换为 List<int>

我想转换一个List到List.这是我的代码:voidConvert(ListstringList){ListintList=newList();for(inti=0;i 最佳答案 您可以使用List.ConvertAll(...)而不是使用LINQListintList=stringList.ConvertAll(int.Parse); 关于c#-在C#中将List转换为List,我们在StackOverflow上找到一个类似的问题: https://sta

c# - List<string> 简单分组和计数?

我有一个非常简单的List每个项目包含很多单个字符的设置(IEaforeach将控制台输出为“a”“k”“p”等)我想做的是能够对项目进行分组,并计算每个项目出现的次数,这样我就会得到类似于以下的输出:a-2t-3y-3关于执行此操作的最佳方法的任何提示?如果有任何帮助,我正在使用.Net4。 最佳答案 (鉴于每个条目都是一个字符,顺便说一下,有什么理由没有List吗?)怎么样://TogetaDictionaryvarcounts=list.GroupBy(x=>x).ToDictionary(g=>g.Key,g=>g.Coun

c# - 将字符串数组加载到 List<int> 中最优雅的方法是什么?

考虑一个包含数值的字符串数组:string[]intArray={"25","65","0"};将数字加载到List中的最优雅的方法是什么?不使用for或while遍历intArray? 最佳答案 您可以使用Enumerable.Select方法ListintList=intArray.Select(str=>int.Parse(str)).ToList(); 关于c#-将字符串数组加载到List中最优雅的方法是什么?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么静态分析会忽略 double <= 和 >= 要求?

我有一个使用.NET代码契约的非常简单的类:publicclassContractSquareRoot{//////MakesyourlifemucheasierbycallingMath.Sqrtforyou.Ain'tthatpeachy.//////Thevaluetocalculatethesquarerootfrom.Nonegatives!///Thesquarerootofthegivenvalue.Obviouslyalways>0.publicdoubleCalculateSquareRoot(doublevalue){Contract.Requires(0());d

c# - 为什么要在 List<T>.AddRange(IEnumerable<T>) 中添加额外的副本?

我正在查看System.Collections.Generic.List的开源代码.AddRange(IEnumerable)方法如下所示:publicvoidAddRange(IEnumerablecollection){Contract.Ensures(Count>=Contract.OldValue(Count));InsertRange(_size,collection);}和InsertRange(int,IEnumerable)方法看起来像这样:publicvoidInsertRange(intindex,IEnumerablecollection){if(collecti

c# - 为 EntitySet<T>、IQueryable<T> 和 IEnumerable<T> 创建可重用谓词

在我的LINQtoSQL设置中,我有各种表,这些表映射到基本上支持相同接口(interface)以支持版本控制的类,即publicinterfaceIValid{int?validTo{get;}intvalidFrom{get;}}LINQtoSQL类派生自此接口(interface),如下所示:publicpartialclassrepresentationRevision:IValid{}现在我想定义一种DRY(不要重复自己)过滤方式EntitySet,IEnumerable和IQueryable以便生成的列表对特定修订版有效。我试过这样做:publicstaticclassEx

c# - Lazy<T> 与标准惰性实例化相比有哪些优势?

考虑这个例子,它展示了延迟初始化的两种可能方式。除了线程安全之外,在此处使用Lazy是否有任何特定优势?classCustomer{privatedecimal?_balance2;privatestaticdecimalGetBalanceOverNetwork(){//lengthynetworkoperationsThread.Sleep(2000);return99.9M;}publicdecimal?GetBalance2Lazily(){return_balance2??(_balance2=GetBalanceOverNetwork());}privatereadonly