C#中判断一个数组中是否存在某个数组值 及相关
声明:reference:http://www.cnblogs.com/icebutterfly/archive/2010/06/22/1762738.html;http://blog.csdn.net/jimlong/article/details/3951314
paste 1:
(1) 第一种方法:
int[] ia = {1,2,3};
int id = Array.IndexOf(ia,1); // 这里的1就是你要查找的值
if(id==-1)
// 不存在
else
// 存在
(2) 第二种方法:
string[] strArr = {"a","b","c","d","e"};
bool exists = ((IList)strArr).Contains("a");
if(exists)
// 存在
else
// 不存在
注意: 用IList需要using System.Collections;
paste 2:
数组是一种常用的数据类型,且属于引用类型。它是由一组相同数据类型的元素构成的。在C#语言的类型系统中,数组由抽象类System.Array派生而来的。在内存中,数组占用一块连续的内存,元素按顺序连续存放在一起,数组中每一个单独的元素并没有自己的名字,但是可以通过其位置(索引)来进行访问或修改。
在C#中,数组元素的索引是从0开始的,即对于有N个元素的数组,其索引范围是从0~N-1。
在这里重点讨论一下一位数组的使用方法。
1.一维数组的声明
数组声明时,主要声明数组的名称和所包含的元素类型,一般格式如下:
数组类型[] 数组名;
数组类型,可以使C#中任意有效的数据类型,包括类;数组名可以是C#中任意有效的标识符。下面是数组声明的几个例子:
int[ ] num;
float [ ] fNum;
string[ ] sWords;
Studnet[ ] stu; //Student是已定义好的类类型
注意:
数据类型[ ] 是数组类型,变量名放在[ ]后面,这与C和C++是不同的;
声明数组时,不能指定长度。
2.一维数组的创建
创建数组就是给数组对象分配内存。因为数组本身也是类,所以跟类一样,声明数组时,并没有真正创建数组,使用前,要用new操作符来创建数组对象。创建方法有以下几种方法:
(1)先声明,后创建
形式为:
数据类型[ ] 数组名;
数组名 = new 数据类型[元素个数];
下面举几个例子:
int [] num; num = new int[10]; //声明并创建了一个具有10个整型元素的数组num。
string[ ] str; str = new string[3]; //声明并创建了一个具有3个字符串数据类型的数组str.
double [] dnum; dnum = new double[5]; //声明并创建了一个具有5个double型数据元素的数组dnum.
(2)声明的同时创建数组
数据类型[ ] 数组名 = new 数据类型[元素个数];
下面是几个例子:
int[] num = new int[10];
double[] t = new double[4];
short[] st = new short[17];
3.一维数组的初始化
数组在定义的同时给定元素的值,即为数组的初始化,初始化方法有以下几种:
(1)数据类型[ ] 数组名 = new 数据类型[元素个数]{初始值列表}; 如以下例子:
int [] num = new int[4]{12,34,56,78};
string[ ] str = new string[3]{"you","and","me"};
float[ ] f = new float[5]{1.345f,12,13.5f,109.345f,12.1f};
(2)省略数组的大小,即:数据类型[ ] 数组名 = new 数据类型[ ]{初始值列表}; 如以下的例子:
short[ ] st = new short[]{2,4,67,3}; //数组元素的个数为4
int[ ] iNum = new int[]{23,45,67,89,100,234,567,234}; //数组元素的个数为8
(3)进一步省略new和数据类型[],即:数据类型[ ] 数组名 = {初始值列表}; 如以下的例子:
string[ ] names = {"wangtao","liuli","sanmao","shanghaitan","jinghuayanyun"};
int [ ] iNum = {45,28,34,74,84};
4.一维数组的赋值
要给数组赋值,需要用到数组的索引,格式为:
数组名[索引值] = 数据的值;
下面试一个例子:
int [] a = new int[4];
a[0] = 24;
a[1] = 54;
a[2] = 87;
a[3] = 93;
注意到以上的例子索引是从0~3。我们也看出,在给数组进行大量的赋值时,显得较麻烦,不如初始化方便。
5.数组类常用属性和方法
Length 获得数组元素的个数
Rank 获得数组的秩(维数),对于一维数组来说,Rank 总是为1。
GetLength(int) 获得指定维度的元素个数。
6.数组应用举例
(1)用选择法对10个数按着由小到大进行排序。
源程序代码如下:
using System;
class Class1
{
static void Sort(int[] a)
{
int i,j,k,temp;
for(i=0;i<a.Length-1;i++)
{
k=i;
for(j=i+1;j<a.Length;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{temp = a[i];a[i] = a[k]; a[k] = temp;}
}
}
static void Main(string[] args)
{
int[] AA = new int[]{918,124,58,1125,825,51,82};
Sort(AA);
Console.WriteLine("排序后的结果:");
for(int i=0;i<AA.Length;i++)
Console.Write(AA[i]+" ");
Console.WriteLine();
}
}
运行结果如下:

(2)找出整型数组中最大的元素和其索引值。
源程序代码如下:


运行结果如下:

C#中判断一个数组中是否存在某个数组值 及相关的更多相关文章
- Excel中判断一个表中的某一列的数据在另一列中是否存在
A B C D 1 10 3 有 2 6 e 无 3 3 6 有 判断c列的值在A列中是否存在(假定C列为需要判断列,A列为目标列) 在D1中输入以下公式,然后下拉公式即可 =IF(C ...
- javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数
javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...
- Day_09【常用API】扩展案例1_程序中使用一个长度为3的对象数组,存储用户的登录名和密码……
需求说明:实现用户注册.登陆功能: 1.程序中使用一个长度为3的**对象数组**,存储用户的登录名和密码: 例如如下格式: 登录名 密码 生日 爱好 zhangsan 1111 1998-03-15 ...
- c c++怎么判断一个字符串中是否含有汉字
c c++怎么判断一个字符串中是否含有汉字 (2013-02-05 10:44:23) 转载▼ #include #include int main() { char sztext[] = ...
- C#判断一个类中有无"指定名称"的方法
C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- 在C中判断变量存储类型(字符常量/数组/动态变量)
在C中判断变量存储类型(字符常量/数组/动态变量) 在chinaunix论坛上有人问到关于变量存府类型的问题,我觉得可以写个测试代码加深大家对内存使用和布局的理解.下面我把原问题及处理办法贴出来,限供 ...
- java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字
题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.re ...
- 判断是否是同一人的方法——equals()?在Person类中提供一个比较的方法compare()返回boolean值?对象自己和自己比?
判断是否是同一人的方法——equals() 不能直接用per1==per2,这不是对象内容的比较而是存放对象地址的值得比较 在Person类中提供一个比较的方法compare()返回boolean值 ...
- jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?
1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自 ...
- Java 正则判断一个字符串中是否包含中文
使用正则判断一个字符串中是否包含中文或者中文字符 代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /** ...
随机推荐
- ASP.NET中iframe框架点击左边页面链接,右边显示链接页面内容
首先是主页面main.aspx <body style="background-color: #AFEEEE"> <form id="form1&quo ...
- windows server 2003下安装.net framework 3.5 一直安装不成功
安装包是在微软下载中心下的197m的文件 重启了也是不行,最后 找到.net framework 3.5 sp1 一个237m的安装包 安装成功了! Congratulations !
- 《TCP/IP详解 卷一》读书笔记-----TCP数据流
1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Al ...
- 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net
Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...
- [cocos2dx]2.2到3.1(3.0)升级帮助
摘要: cocos2dx 是一款优秀的多平台,专为2D游戏设计的引擎. 在活跃的开源社区的推进下, 越发稳定和强大. 2.x -> 3.x的更新幅度很大, 性能的提升和功能的丰富也非常明显. 但 ...
- CSS3 Filter详解(改变模糊度 亮度 透明度等方法)
CSS3 Filter(滤镜)属性提供了提供模糊和改变元素颜色的功能.CSS3 Fitler 常用于调整图像的渲染.背景或边框显示效果. -webkit-filter是css3的一个属性,Webkit ...
- 数据结构Java实现02----线性表与顺序表
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Linux安装telnet
安装环境:CentOS 6.4 上篇已经讲述了memcached的安装,现在要测试Memcached功能的时候,需要使用到telnet服务.于是就有了本篇. 一.安装telnet 1.检测t ...
- C语言中,&和&&都是做什么的?
&按位&&逻辑与 逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式.逻辑运算符有4个,它们分别是: !(逻辑非). ||(逻辑或).&&(逻辑与) ...
- java 21 - 8 复制文本文件的5种方式
需求:复制文本文件 分析: 由于文本文件我们用记事本打开后可以读懂,所以使用字符流. 而字符流有5种复制的方式: 首先写main方法 public static void main(String[] ...