一.数组简介
数组是一种数据结构,它包含若干相同类型的变量。数组是使用类型声明的: 数组具有以下属性:
声明数组时,方括号 [] 必须跟在类型后面,而不是标识符后面,在 C# 中,将方括 号放在标识符后是不合法的语法。

另一细节是,数组的大小不是其类型的一部分,您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。

二、一维数组
一维数组在数组中最常用,即将一组值存放到一个数组中,并为其定义一个名称,通 过数组中元素的位置来存取值。
创建一维数组的语法形式如下,在 C# 中,数组是对象,必须进行实例化。

在定义数组时定义的数据类型代表了数组中每个元素的数据类型。
在使用数组前必须初始化数据,即为数组赋初值。
在初始化数组时指定了数组中的长度,也就是数组中能存放的元素个数。
在指定数组的长度后,数组中的元素会被系统自动赋予初始值,与类中段的初始化类 似,数值类型的值为 0、引用类型的值为 null。
如果在初始化数组中直接对数组赋值了,那么数组中值的个数就是数组的长度。
由于在数组中存放了多个元素,在存取数组中的元素时要使用下标来存取,类似于取 字符串中的字符。
例如有一个 int 类型的数组,输出数组中的第一个元素和最后一个元素,语句如下。

也可通过输出循环

三、二维数组
在 C# 语言里多维数组中比较常用的是二维数组,也可以称之为多维数组。 定义多维数组的语法形式如下。

从上面定义的语法可以看出,它与一维数组的定义非常类似,每多一个维度则在定义 时的 [] 中增加一个“,”。
存取数组中的值也是将下标用“,”隔开。
例子:.

四、foreach遍历
C# foreach 循环用于列举出集合中所有的元素,foreach 语句中的表达式由关键字 in 隔开的两个项组成。 in 右边的项是集合名,
in 左边的项是变量名,用来存放该集合中的每个元素。
foreach 语句经常与数组一起使用,在 C# 语言中提供了 foreach 语句遍历数组中的 元素,具体的语法形式 如下。

这里变量名的数据类型必须与数组的数据类型相兼容。
在 foreach 循环中,如果要输出数组中的元素,不需要使用数组中的下标,直接输 出变量名即可。
foreach 语句仅能用于数组、字符串或集合类数据类型。
例子:
五、结构体类型
结构体与类比较相似,由于它是值类型,在使用时会比使用类存取的速度更快,但灵 活性方面没有类好。
结构体从字面上来理解是指定义一种结构,实际上结构体是一种与类的定义非常相似 的数据类型,但它是值类型。
结构体的定义位置与枚举类型一样,都是在类中定义或者在命名空间下定义,而不能 将其定义到方法中。
结构体的定义位置与枚举类型一样,都是在类中定义或者在命名空间下定义,而不能 将其定义到方法中。

注意:
1.访问修饰符:通常使用 public 或者省略不写,如果省略不写,代表使用 private 来修饰,如果结构体中的内容要被其他类中的成员访问,需要将其访问修饰符设 置为 public。
2.结构体名称:命名规则通常和变量的命名规则相同,即从第二个单词开始每个单 词的首字母大写。
3.结构体成员:包括字段、属性、方法以及后面要介绍的事件等。在结构体中也能 编写构造器,但必须带参数,并且必须为结构体中的字段赋初值。在调用结构体 的成员时,能使用不带参数的构造器,与创建类的对象时类似。
例子:

六、枚举类型
枚举类型与《C#一维数组》一节中介绍的数组比较接近,它可以将一组值存放到一 个变量名下,方便调用。
枚举类型是一种值类型,定义好的值会存放到栈中。
枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样 的,或者直接定义在命名空间中。
注意:注意不能直接将枚举类型定义到方法中。
定义枚举类型的变量的语法形式如下。

其中:
1. 与类成员的访问修饰符一样,省略访问修饰符也是代表使用 private 修饰符的。
2. 指枚举中值的数据类型。只能是整数类型,包括 byte、short、int、long 等。
3. 在枚举类型中显示的值。但实际上每个值都被自动赋予了一个整数类型值,并且 值是递增加 1 的,默认是从 0 开始的,也就是值 1 的值是 0、值 2 的值是 1。
4. 如果不需要系统自动为枚举值指定值,也可以直接为其赋一个整数值。
5. 每个没有指定值的枚举值,它的初始值都是上一个枚举类型的值加 1。
6. 通常设置的枚举值都是不同的,其整数值也是不同的。
例子:


总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这