• C# Array GetValue,SetValue,GetLowerBound,GetUpperBound的学习


     1         static void Main(string[] args)
     2         {
     3             //Array.Find
     4             //搜索与指定条件match相匹配的项,然后输出第一个匹配项
     5             //Array.Find(Array1,match);
     6 
     7             int i, j, k;
     8             int[] a = new int[] { 1,2,3,4,5};
     9             char[] b=new char [] {'1','2','3','4','5' };
    10             int[,] aa = new int[,] { {1,2,3,4 },{5,6,7,8 } };
    11             // Array.Find(a, V);不会使用
    12 
    13 
    14             //GetLowerBound
    15             //返回指定维的下界
    16             //GetUpperBound
    17             //返回指定维的上界
    18             //使用方法都一致,是Array1.GetLowerBound(dimension)
    19             //dimension为数组的维度
    20 
    21             //我们可以用齐来简化一些操作
    22             //例如这的a是一个一维数组,所以他对应的维度只有一个0
    23             for (i= a.GetLowerBound(0); i<=a.GetUpperBound(0);i++)
    24                
    25             {
    26                 Console.WriteLine("{0}",a[i]);
    27             }
    28 
    29             //如果我们对dimension做一些改变
    30             Console.WriteLine("//////////////////////////////////////////////////////////////////");
    31 
    32             //这里就是二维的数组的第二维数
    33             for (i = aa.GetLowerBound(1); i <= aa.GetUpperBound(1); i++)
    34 
    35             {
    36                 Console.WriteLine("{0}", aa[1,i]);
    37             }
    38 
    39             Console.WriteLine("//////////////////////////////////////////////////////////////////");
    40             //SetValue和GetValue
    41             a = new int[] { 1, 2, 3, 4, 5 };
    42              b = new char[] { '1', '2', '3', '4', '5' };
    43              aa = new int[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
    44 
    45             Console.WriteLine("{0}", a.GetValue(2));//3
    46             //GetValue,获得对应于()内的位数的数据,这个只能用于一维数组
    47             a.SetValue(2, 0);
    48             Console.WriteLine("{0}", a.GetValue(0));//2
    49                                                     //SetValue,(数据,改变数据的位置)的形式
    50 
    51             /*
    52             b.SetValue(2,1);
    53             Console.WriteLine("{0}", b.GetValue(1));
    54             这里不能这么写,虽然SetValue没有报错,但是b数组是一个char型的数组,
    55             不可以再里面写int型。
    56              
    57              */
    58             b.SetValue('2', 0);//以字符型就可以输出。
    59             Console.WriteLine("{0}", b.GetValue(0));
    60 
    61             Console.WriteLine("//////////////////////////////////////////////////////////////////");
    62 
    63             //那对字符串类型的呢?
    64             string[] aaa = new string[] {"123A","456B","789D","WS","SB" };
    65             string[] bbb = new string[] { "123A456B789D" };
    66             //有aaa和bbb两种类型的字符串数组
    67             Console.WriteLine("{0}", aaa.GetValue(2));
    68             //输出的是789D
    69             //Console.WriteLine("{0}", bbb.GetValue(2));
    70             //这里语法上面没有错误,但是输出出来就有问题了GetValue会认为一个""就是一个字符串数组,
    71             //所以我们这里的GetValue(2)是越界了
    72             Console.WriteLine("{0}", bbb.GetValue(0));
    73             //输出结果就是123A456B789D
    74 
    75             //同理SetValue就同样的方法
    76             aaa.SetValue("SB",0);
    77             Console.WriteLine("{0}", aaa.GetValue(0));
    78 
    79             //aaa.SetValue('S', 1);
    80             //Console.WriteLine("{0}", aaa.GetValue(1));
    81             //aaa.SetValue(1,2);
    82             //Console.WriteLine("{0}", aaa.GetValue(2));
    83             //这两个都是有问题的,注意,这里不会相互转换,只能是什么就填什么,什么类型的数据对应什么类型是数据
    84 
    85             bbb.SetValue("SB", 0);
    86             Console.WriteLine("{0}",bbb .GetValue(0));
    87             //所以bbb字符串只能整体变动,而不能向一个单个是字符串一样可以单个字符的变动。
    88 
    89 
    90 
    91 
    92 
    93 
    94 
    95         }
    悟已往之不谏,知来者之可追
  • 相关阅读:
    设计模式のPrototypePattern(原型模式)----创建模式
    设计模式のBuilderPattern(创建者模式)----创建模式
    设计模式のSingleton Pattern(单例模式)----创建模式
    设计模式のAbstractFactory(虚拟工厂)----创建模式
    设计模式のFactoryPattern(工厂模式)----创建模式
    日文键盘改英文键盘
    [转]CString转char * ,string
    linux下添加PATH环境变量
    Windows异步套接字(WSASocket)
    【转载】va_start和va_end使用详解
  • 原文地址:https://www.cnblogs.com/ljh-study/p/13651791.html
Copyright © 2020-2023  润新知