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; /** ...
随机推荐
- 文件输入流 FileInputStream类 文件输出流FileOutputStream ---转载
转载自---http://blog.csdn.net/hguisu/article/details/7418161 111:文件输入流: FileInputStream可以使用read()方法一次读入 ...
- mac svn 终端操作命令
svn 删除目录命令 svn 提交命令 svn commit -m zenggui 出来要提交的目录后,按shift + : + q 如遇到不明白的可以输入:svn help 比如想查询删除命令的使用 ...
- matlab中subplot函数的功能
转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...
- [转]WCDMA系统结构及关键技术
本文转自:http://blog.csdn.net/lele52141/article/details/8498951 WCDMA系统结构: CN指核心网,UTRAN接入网,UE用户设备. UTRAN ...
- 记忆化搜索 codevs 2241 排序二叉树
codevs 2241 排序二叉树 ★ 输入文件:bstree.in 输出文件:bstree.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 一个边长为n的正三 ...
- mysql 防止update/delete误操作
身为一php开发攻城狮,常常涉及在应用中写update/delete语句,忘记加where,后果不堪设想. 还会出现在cml下直接操作mysql的情况,如果mysql 权限够大,一个update/de ...
- Golang tool:include spider library,image library and some other db library such as mysql,redis,mogodb,hbase,cassandra
一.Go_tool This is a tool library for Golang.Dont't worry about not understant it! All comment writes ...
- git版本控制工具(二)----本地版本库的常用操作
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- copy sqlserver中DATE类型的数据转化 CONVERT
copy http://www.cnblogs.com/benwu/p/3939044.html 主要描述的是SQL Server使用convert取得datetime日期数据的实际操作流程,在实际操 ...
- Java的IO操作---File类
目标 1)掌握File类作用 2)可以使用file类中方法对文件进行读写操作. File类 唯一与文件有关的类.使用file类可进行创建或删除操作,要想使用File类,首先观察File类的构造方法. ...