C# --习题笔记02

来源:互联网 发布:网络直销怎么做 2017 编辑:程序博客网 时间:2024/06/06 00:34

-- List 集合,Random 随机数-- 在1-100之间找出10个随机奇数,并保存到集合中

List<int> list = new List<int>();Random random= new Random();int index =0; //记录循环的次数
while(list.Count<10<){    int num = number.Next(1,101)    if(num %2 != 0 && !list.Contains(num))     {        list.Add(num);     }     index++;
}for(int i = 0; i< list.Count; i++){   Console.WriteLine(list[i]);}

注:
Random random = new Random(98765); // 只要种子一样,算法一样,所以生成的随机数是一样的
int num = number.Next(1,101); //要用Next 方法,而不要每次new random,效率低

-- IndexOf(), 计算索引位置。求一段字符串中某个词的每次出现的索引位置及一共出现多少次

string msg = "吃葡萄不吐葡萄皮,不吃葡萄到吐葡萄皮";string word ="葡萄";count = 0; //统计出现次数index = 0; //索引位置while((index= msg.IndexOf("葡萄", index) !=-1)//IndexOf(string value, int startIndex) 报告指定字符串在此实例中的第一个匹配项的索引。该搜索从指定字符位置开始{    count++;    Console.WriteLine("第{0}次出现,其索引位置是{1}", count, index);    index = index+word.length//记录新的搜索的索引起始位置,即当前的索引加上字符长度}

-- string.Trim() 去除字符串两端的空字符; string.Split() 重载可去除字符串中间的空字符串;

string msg = "   hello          world,你     好  世界     !";msg = msg.Trim(); char[] removeChars = {' '};string[] words = msg.Split(removeChars, StringSplitOptions.RemoveEmptyEntries); //StringSplitOptions要求第一个参数为数组型,所以之前定义了removeChars数组,包含要去除的字符string result = string.Join(" ", words); //string.Join() 串联字符串数的所有元素

-- 在数组中查找是否有重复的值
思路: 用每一个去和所有的比较,如果有值相同,但索引不同,说明有重复的值
注意: count 计数是对不重复的值,重复的不需要计数。

</pre><pre name="code" class="csharp">
int[] arrInt = {1,2,3,4,5,1,2,5};int count = 0;for (int i=0; i<arrInt.Length; i++){   bool flag = true;  //标记,假设所有元素都不重复   for(int j=0; j<arrInt.Length; j++)   {      if(arrInt[i] == arrInt[j] && i != j)      {        flag = false;         break; //有重复,退出本层循环,后面的也不需要再判断      }   }  if(flag) // 等同于if(flag == true)  {     count++;  }}Console.WriteLine(“不重复的数字有{0}个”, count);

-- 不能直接修改字符串,比如date[0] = '零' ,字符串具有不可改变行。
思路: 1. 现根据字符串date, 产生一个char数组(字符数组)
             char[] chas = date.ToCharArray();
             2. string outcome = new string(chas);




--重载的方法,必须在父级中设置为虚方法,即加关键字virtual




0 0
原创粉丝点击