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#学习笔记-浅谈数组复制,排序,取段,元组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。