C#学习笔记- 浅谈数组复制,排序,取段,元组
C#学习笔记-浅谈数组复制,排序,取段,元组
usingSystem; usingSystem.Collections.Generic; namespaceApplication { classTest { staticvoidMain() { //元组类型Tuple是静态类型,用静态方法创建实例,超过8个元素则第8个元素是元组类型 vartupe=Tuple.Create<int,int,string,string>(1,2,"a","b"); Console.WriteLine("{0},{1}",tupe.Item1,tupe.Item3); //=====Array类是抽象类,只能通过它的静态方法CreateInstance()创建实例 //=====如果事先不知道类型,可以用此方法 Arrayarrays=Array.CreateInstance(typeof(int),5); for(inti=0;i<arrays.Length;i++){ arrays.SetValue(35,i); Console.WriteLine(arrays.GetValue(i)); } Person[]persons={ newPerson{firstName="su",lastName="uifu"}, newPerson{firstName="chen",lastName="xaohua"}, newPerson{firstName="cbb",lastName="ruifu"}, newPerson{firstName="utt",lastName="xiaohua"} }; //=====Clone()复制数组,引用类型复制索引值,值类型复制值 Person[]persons1=persons.Clone(); Array.Sort(persons,newPersonComparer(PersonCompareType.lastName)); foreach(varpinpersons){ Console.WriteLine(p); } //======ArraySegment<T>对数组取段==== varsegments=newArraySegment<Person>(persons,1,2); for(inti=segments.Offset;i<segments.Offset+segments.Count;i++){ Console.WriteLine(segments.Array[i]); } } publicclassPerson { publicstringfirstName{get;set;} publicstringlastName{get;set;} publicoverridestringToString() { returnString.Format("{0},{1}",firstName,lastName); } } //======要对引用类型的数组使用Array.sort()方法,必须对类实现IComparable<T>接口 //======或写一个附加类并实现Comparer<T>接口 publicenumPersonCompareType { firstName, lastName } publicclassPersonComparer:IComparer<Person> { privatePersonCompareTypepct; publicPersonComparer(PersonCompareTypepct) { this.pct=pct; } publicintCompare(Personx,Persony) { if(x==null) thrownewArgumentNullException(); if(y==null) thrownewArgumentNullException(); switch(pct){ casePersonCompareType.firstName: returnx.firstName.CompareTo(y.lastName); casePersonCompareType.lastName: returnx.lastName.CompareTo(y.lastName); default: thrownewArgumentException("no.."); } } } }
以上这篇C#学习笔记-浅谈数组复制,排序,取段,元组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。