C#学习笔记- 浅谈数组复制,排序,取段,元组

 更新时间:2016年08月21日 15:00:48   投稿:jingxian  
下面小编就为大家带来一篇C#学习笔记- 浅谈数组复制,排序,取段,元组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

C#学习笔记- 浅谈数组复制,排序,取段,元组

using System;
using System.Collections.Generic;

namespace Application
{
class Test
{
static void Main ()
{

//元组类型Tuple是静态类型,用静态方法创建实例,超过8个元素则第8个元素是元组类型

var tupe = Tuple.Create<int,int,string,string> (1, 2, "a", "b");
Console.WriteLine ("{ 0},{ 1}",tupe.Item1, tupe.Item3);


//=====Array类是抽象类,只能通过它的静态方法CreateInstance()创建实例

//=====如果事先不知道类型,可以用此方法

Array arrays = Array.CreateInstance (typeof(int), 5);
for (int i = 0; i < arrays.Length; i++) {
arrays.SetValue (35, i);
Console.WriteLine (arrays.GetValue (i));
}


Person[] persons = {
new Person { firstName = "su", lastName = "uifu" },
new Person { firstName = "chen", lastName = "xaohua" },
new Person { firstName = "cbb", lastName = "ruifu" },
new Person { firstName = "utt", lastName = "xiaohua" }
} ;

//=====Clone()复制数组,引用类型复制索引值,值类型复制值

Person[] persons1 = persons.Clone ();
Array.Sort (persons, new PersonComparer (PersonCompareType.lastName));
foreach (var p in persons) {
Console.WriteLine (p);
}

//======ArraySegment<T>对数组取段====
var segments = new ArraySegment<Person> (persons, 1, 2);
for (int i = segments.Offset; i < segments.Offset + segments.Count; i++) {
Console.WriteLine (segments.Array [i]);
}
}

public class Person
{
public string firstName{ get; set; }
public string lastName{ get; set; }

public override string ToString ()
{
return String.Format ("{ 0},{ 1}", firstName, lastName);
}
}
//======要对引用类型的数组使用Array.sort()方法,必须对类实现IComparable<T>接口

//======或写一个附加类并实现Comparer<T>接口
public enum PersonCompareType
{
firstName,
lastName
}

public class PersonComparer:IComparer<Person>
{
private PersonCompareType pct;

public PersonComparer (PersonCompareType pct)
{
this.pct = pct;
}
public int Compare(Person x,Person y)
{
if (x == null)
throw new ArgumentNullException ();
if (y == null)
throw new ArgumentNullException ();
switch (pct) {
case PersonCompareType.firstName:
return x.firstName.CompareTo (y.lastName);
case PersonCompareType.lastName:
return x.lastName.CompareTo (y.lastName);
default:
throw new ArgumentException ("no..");
}
}

}
}

以上这篇C#学习笔记- 浅谈数组复制,排序,取段,元组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#零基础学习理解委托

    C#零基础学习理解委托

    C#零基础学习理解委托,需要的朋友可以参考一下
    2013-02-02
  • C#实现访问Web API Url提交数据并获取处理结果

    C#实现访问Web API Url提交数据并获取处理结果

    Web API  是 Web 服务器和 Web 浏览器之间的应用程序处理接口,我们常见的模式是访问 Web API Url 地址,并获取 Json 、XML或其它指定格式的处理结果, 本文我们介绍了使用C#实现访问Web API Url提交数据并获取处理结果,需要的朋友可以参考下
    2024-05-05
  • C#微信分享代码

    C#微信分享代码

    这篇文章主要为大家详细介绍了C#微信分享的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • c# socket编程udp客户端实现代码分享

    c# socket编程udp客户端实现代码分享

    这篇文章主要介绍了c# socket编程实现udp客户端,大家参考使用吧
    2013-12-12
  • VS2022+unity3D开发环境搭建的实现步骤

    VS2022+unity3D开发环境搭建的实现步骤

    本文主要介绍了VS2022+unity3D开发环境搭建的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#中Abstract 、Virtual和Override的使用及区别

    C#中Abstract 、Virtual和Override的使用及区别

    C#中virtual,abstract,override用于方法重载,子类覆盖了父类的相同方法,父类中的实现不可能再被外面调用。本文给大家重点介绍C#中Abstract 、Virtual和Override的使用及区别,需要的朋友参考下吧
    2021-06-06
  • 基于params,ref,out的参数问题详解

    基于params,ref,out的参数问题详解

    本篇文章是对params,ref,out的参数问题进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C# winfrom实现读取修改xml

    C# winfrom实现读取修改xml

    这篇文章主要为大家详细介绍了C# winfrom实现读取修改xml的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • unity3D实现摄像机抖动特效

    unity3D实现摄像机抖动特效

    这篇文章主要为大家详细介绍了unity3D实现摄像机抖动特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • c#实现一元二次方程求解器示例分享

    c#实现一元二次方程求解器示例分享

    这篇文章主要介绍了c#实现一元二次方程求解器示例,需要的朋友可以参考下
    2014-03-03

最新评论