using System;
using System.Collections;
namespace _11_ArrayList练习 {
class Program {
//还是那句话 理解题目之后 有了思路再开始写code 思路最重要
static void Main( string[] args) {
//两个集合{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把这两个集合去除重复项合并成一个
ArrayList ary1 = new ArrayList { "a" , "b" , "c", "d" , "e" };
ArrayList ary2 = new ArrayList { "d" , "e" , "f", "g" , "h" };
//遍历两个集合
for (int i = 0; i < ary2.Count; i++) { //循环遍历ary2元素与ary1逐个比较 如果存在相同值 则不添加 否则追加到ary1中
if (!ary1.Contains(ary2[i])) {//有Contains方法 如果没有 不知道有多复杂
ary1.Add(ary2[i]);
}
}
foreach (object item in ary1) {
Console .Write(item);
}
//随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数
ArrayList arylist = new ArrayList();
//int numCount = 0;
while (true ) {
Random ran = new Random();
int num = ran.Next(1, 100);
if (num % 2 == 0 && !arylist.Contains(num)) { //添加!arylist.Contains(num)这句话 解决以下问题
arylist.Add(num); //为什么直接运行总显示第一个满足条件数值 而单步调试却显示正确结果???
}
if (arylist.Count == 10) {
break ;
}
}
foreach (object item in arylist) {
Console .WriteLine(item);
}
//有一个字符串是用空格分隔的一系列整数,写一个程序把其中的整数做如下重新排列打印出来:奇数显示在左侧、偶数显示在右侧。比如‘2 7 8 3 22 9'显示成‘7 3 9 2 8 22
string str = "2 7 8 3 22 9" ;
ArrayList ary3 = new ArrayList();
ArrayList ary4 = new ArrayList();
string [] s = str.Split(' ' );
foreach (var item in s) {
if (Convert .ToInt32(item) % 2 == 0) {
ary4.Add(item);
} else {
ary3.Add(item);
}
}
ary3.AddRange(ary4); //因为ary1类型为object 所以无法使用string类的join方法实现字符拼接 后面学过泛型集合可以处理
string newstr = ary3[0].ToString();//简单方式去掉空格
for (int i = 1; i < ary3.Count; i++) {
newstr += " " + ary3[i];
}
Console .WriteLine("原字符串:{0},筛选后的字符串{1}" , str, newstr + "test" );
Console .Read();
}
}
}
您可能感兴趣的文章: