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; /** ...
随机推荐
- jQuery事件绑定on、off 和one,取代bind, live, delegate
jQuery最新版建议:最好用on来代替以前的bind, live, delegate,其中live是最不建议使用的. on和off的格式 on $(elements).on(events[, sel ...
- vim自定义配色方案,图文并茂
1.先上图 下面是tcpdump的源码.颜色根据自己的喜好配置,我比较喜欢亮的颜色,看的清楚! 2.下载辅助配置文件 ...
- 嵌入式Linux应用程序开发详解------(创建守护进程)
嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...
- linux sed命令
一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces. sed -i 's/1 ...
- dipole antenna simulation by HFSS
工作频点为1GHz,新建工程,添加新设计,编辑添加下面的变量 建立天线模型,即两个金属圆柱.编辑完一个振子后,另一半可以用镜像命令产生参数如下设置 ,材料为PEC 两个圆柱间建立一个矩形片,连接两个圆 ...
- 如何实现ZBrush中部分模型的选择和隐藏
在ZBrush中制作雕刻比较庞大细节又很丰富模型的时候,有时你可能只想显示模型的某些部分,有些部分挡住了视线想要暂时隐藏.ZBrush®软件中有一个选项功能使这项操作变得相当简单,像其他功能一样,使用 ...
- js练习-控制div属性
要开始练练js了,决定先按照Ferris大大的索引表一个个练,头一个就是控制div属性啦.看似挺简单的,不过平时jquery用惯了,用起来原生js还有点手生呢. 总之就是模仿加练习啦,先看看效果: 一 ...
- localStorage实现购物车数量单价和总价实时同步(二)
利用localStorage实时显示购物车小计和总价页面显示: 和昨天的原理相同,本地存储同时实时循环计算总价之和,注意循环时候的先清空再计算 Success is getting what you ...
- Mac上安装node.js
1.下载node for mac并一路默认安装 2.测试成功否 3.copy this file to test(save as javascript file) var http = require ...
- poj 1159 Palindrome
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 59094 Accepted: 20528 Desc ...