asp.net c# string[], int[]数组用法与区别

经常用string[], int[]这些数组, 今天偶然发现还有一个System.Array类, 它的声明如下:

 代码如下 复制代码

public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable

看来它是一个抽象类.

查一下msdn, 发现它的用途如下:

"提供创建、操作、搜索和排序数组的方法,因而在公共语言运行时中用作所有数组的基类。"
"Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用由语言提供的数组构造。"

自己写代码试了一下, 确实如上所述, 不能继承Array这个抽象类,

 

Array的使用方法举例:

 代码如下 复制代码

            Array abc = Array.CreateInstance(typeof(string), 3);
            abc.SetValue("lzd1", 0);
            abc.SetValue("lzd2", 1);
            abc.SetValue("lzd3", 2);
            for (int i = 0; i < abc.Length; i++)
            {
                Console.WriteLine(abc.GetValue(i));
            }

看这代码,觉得和string[], int[]的本质是一样的,就是繁琐些,难怪msdn说它是所有数组的基类,但是用refactor翻译一段string[],int[]的代码,发现编译后并不翻译成Array,不知道内部它们之间是怎么转换的,先不管这也罢,反正最重要的思考一下Array的作用和用途在哪里?毕竟直接定义的数组比Array.CreateInstance()要简单得多。

 

试一下就可以明白,直接定义的数组不支持排序等操作,如果定义了string[], int[],想要排序,就可以用Array抽象类中的Sort方法了,我想,这是它很有用的一点了。

        

 代码如下 复制代码
    string[] def = new string[] { "lzd7", "lzd5", "lzd6" };
            for (int i = 0; i < def.Length; i++)
            {
                Console.WriteLine(def[i]);
            }
            Array.Sort(def);
            for (int i = 0; i < def.Length; i++)
            {
                Console.WriteLine(def[i]);
            }
时间: 2024-10-30 06:56:28

asp.net c# string[], int[]数组用法与区别的相关文章

List当中indexOf(String, int), removeRange(int, int), lastIndexOf(String, int)的用法

问题描述 写一个方法传递List对象import java.util.*;..................static int i;public static void Test(List a){ a.add(1, "x"); // Add at location 1 a.add("x"); // Add at end addAll(fill(new ArrayList())); a.addAll(3, fill(new ArrayList())); .....

asp.net C int[]数组转换成decimal[]数组实例

<!-- asp教程.net c int[]数组转换成decimal[]数组实例 --> <% int32[] arr = { 1, 2, 3 }; ilist<decimal> lists = new list<decimal>(); foreach (int32 i in arr) {  lists.add(convert.todecimal(i)); } decimal[] darr = lists.toarray<decimal>(); for

string数组类型转换为int数组(数组类型之间的转换)

string数组类型转换为int数组.方法一:ConvertAll的用法 1 public static int StrToInt(string str)2 {3 return int.Parse(str);4 }5 6 string[] arrs = new string[] { "100", "300", "200" };7 int[] arri = Array.ConvertAll(arrs,

Asp.Net中索引器的用法分析_实用技巧

本文实例分析了Asp.Net中索引器的用法.分享给大家供大家参考.具体如下: 索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.get 访问器返回值.set 访问器分配值. 2.this 关键字用于定义索引器. 3.value 关键字用于定义由 set 索引器分配的值. 4.索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制. 5.索引器可

标准C++中的string类的用法总结

相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可能很多人很可能会忽略掉标准C++中string类的使用.标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个

C++中的string类的用法小结_javascript技巧

相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可能很多人很可能会忽略掉标准C++中string类的使用.标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个

水晶报表asp.net的webform下基本用法实例_实用技巧

本文实例讲述了水晶报表asp.net的webform下基本用法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: protected void Page_Init(object sender, EventArgs e) {      ConfigureCrystalReport();  } protected void Page_Unload(object sender, EventArgs e)  {          if (rptDocument == null)     

js console.log打印对像与数组用法详解_javascript技巧

本文实例讲述了js console.log打印对像与数组用法.分享给大家供大家参考,具体如下: console.log是什么东西,其实就是一个打印js数组和对像的函数而已,就像是php的print_r,var_dump.console.log这个函数本身没什么好说的,这篇博客告诉大家怎么去用这个函数.在说这个函数之前,我想大家用的最多查看js输出,是alert吧,但是alert,只能弹string或者是int的 一.测试文件test.html <html xmlns="http://www

java中String的常见用法总结_java

1>获取  1.1:字符串中包含的字符数,也就是字符串的长度.  int length():获取长度  1.2:根据位置获取位置上某个字符.  char charAt(int index)  1.3:根据字符获取该字符在字符串中的位置.  int indexOf(int ch):返回的是ch在字符串中第一次出现的位置.  int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置.   int indexOf(String