a、List>泛型集合
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
namespace _02_泛型集合 {
class Person {
public Person(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Student : Person {
public Student(string name, int age)
: base (name, age) {
}
}
class Teacher : Person {
public Teacher(string name, int age)
: base (name, age) {
}
}
class Program {
static void Main( string[] args) {
Student xyy = new Student( "小月月" , 12);
Student fj = new Student( "鳳姐" , 14);
Student fr = new Student( "芙蓉姐姐" , 16);
Student xl = new Student( "犀利哥" , 18);
List Student > student = new List Student >();
student.Add(xyy);
student.Add(fj);
student.Add(fr);
student.Add(xl);
Teacher tea = new Teacher( "wanghao" , 21);
//student.Add(tea);//因為ListStudent> 限制類型必須為Student 所以不能添加Teacher對象
//比ArrayList更加限制存儲的類型 而且效率要高 因為添加 取出對象是不會發(fā)生裝箱 拆箱的操作的
//遍歷
foreach (Student item in student) {
Console .WriteLine(item.Name);//因為返回的就是student對象 所以可以直接讀取屬性值
Console .WriteLine(item.Age);
}
//移除
student.Remove(xyy); //移除的是引用地址 所以下面移除的s不是xyy
Student s = new Student( "小月月" , 12);
student.Remove(s);
student.RemoveAt(0);
student.RemoveRange(0, 2); //從0索引移除后面兩位 即前移除前兩位學(xué)生 xyy fj
//student.RemoveAll();//移除所有滿足條件的 詳見幫助文檔
student.Clear();
Console .WriteLine(student.Contains(xyy));
//ToArray()方法 轉(zhuǎn)換學(xué)生類型數(shù)組
Student [] stu = student.ToArray();
foreach (Student item in stu) {
Console .WriteLine(item.Name);
}
Console .Read();
}
}
}
b、Dictonary>字典
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
namespace _03_泛型集合 {
class Student {
public Student(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Program {
static void Main( string[] args) {
Student xyy = new Student( "小月月" , 12);
Student fj = new Student( "鳳姐" , 14);
Student fr = new Student( "芙蓉姐姐" , 16);
Student xl = new Student( "犀利哥" , 18);
Dictionary string , Student> student = new Dictionary string, Student >();//key為string類型的name value為Student對象
student.Add( "小月月" , xyy);
student.Add( "鳳姐" , fj);
student.Add( "芙蓉姐姐" , fr);
student.Add( "犀利哥" , xl);
Console .WriteLine(student["犀利哥" ].Name); //根據(jù)key獲取value
//遍歷 通過key
foreach (string item in student.Keys) {
Console .WriteLine(item);
Console .WriteLine(student[item].Age);
}
//遍歷 通過value
foreach (Student item in student.Values) {
Console .WriteLine(item.Age);
}
//遍歷鍵值對
foreach (KeyValuePair string, Student > item in student) {
Console .WriteLine(item.Key);
Console .WriteLine(item.Value.Age);//item.Value是Student對象 直接使用
}
//移除
//student.Remove("小月月");
//student.Clear();
student.ContainsKey( "小月月" ); //是否包含該key
//更多參見幫助文檔
Console .Read();
}
}
}
c、泛型集合練習(xí)
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
namespace _04__泛型練習(xí) {
class Program {
static void Main( string[] args) {
//把分揀奇偶數(shù)的程序用泛型實現(xiàn)
string str = "7 4 3 2 9 8 33 22" ;
string [] strs = str.Split(' ' );
strs = Getevent(strs).ToArray();
string res = string .Join( " ", strs); //string數(shù)組 直接用join就好了
Console .WriteLine(res);
//將int數(shù)組中的奇數(shù)放到一個新的int數(shù)組中返回
int [] intarr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
List int > list = new List int >();
foreach (int item in intarr) {
if (item % 2 != 0) {
list.Add(item);
}
}
intarr = list.ToArray();
foreach (int item in intarr) {
Console .WriteLine(item);
}
//從一個整數(shù)的Listint>中取出最大數(shù)。不使用自身帶的Max()方法。
List int > list2 = new List int > { 1, 2, 3, 4, 5, 6, 7, 8 };
int max = list2[0];
foreach (int item in list2) {
if (item > max) {
max = item;
}
}
Console .WriteLine("泛型集合最大值為{0}" , max);
Console .ReadKey();
}
public static List string > Getevent(string [] str) {
List string > list = new List string >();
List string > list2 = new List string >();
foreach (string item in str) {
if (int .Parse(item) % 2 != 0) {
list.Add(item);
} else {
list2.Add(item);
}
}
list.AddRange(list2);
return list;
}
}
}
d、泛型集合練習(xí)2
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
namespace _06_泛型集合練習(xí) {
class Program {
static void Main( string[] args) {
//把1,2,3轉(zhuǎn)換為壹貳叁
string str = "1壹 2貳 3叁 4肆 5伍 6陸 7柒 8捌 9玖 0零" ;
Dictionary char , char> money = new Dictionary char, char >();
string [] strs = str.Split(' ' );
string s = "123456789" ;
string news = "" ;
for (int i = 0; i strs.Length; i++) {
money.Add(strs[i][0], strs[i][1]);
}
foreach (char item in s) {
news += money[item];
}
Console .WriteLine(news);
char n = '1' ;
Console .WriteLine(n + ' ' ); //結(jié)果顯示為81 char字符相加是把其Asic碼相加的
Console .WriteLine(n + 2);//結(jié)果顯示為51
//如果想實現(xiàn)字符串相加就把任一個參數(shù)改變?yōu)閠ostring輸出
Console .WriteLine(n.ToString() + 2);//顯示為12
//計算字符串中每種字符出現(xiàn)的次數(shù)(面試題)?!癢elcome to Chinaworld”,不區(qū)分大小寫,打印“W 2” “e 2” “o 3”……
string str2 = "Welcome to Chinaworld" ;
Dictionary char , int> num = new Dictionary char, int >();
foreach (char item in str2.ToLower().Replace( " " , "" )) {
if (num.ContainsKey(item)) {
num[item]++;
} else {
num.Add(item, 1);
}
}
foreach (var key in num.Keys) {
Console .WriteLine("\"{0}{1}\"" , key, num[key]);
}
//編寫一個函數(shù)進行日期轉(zhuǎn)換,將輸入的中文日期轉(zhuǎn)換為阿拉伯數(shù)字日期,比如:二零一二年十二月月二十一日要轉(zhuǎn)換為2012-12-21。
string date = "二零一二年十二月二十一日" ; //date2的轉(zhuǎn)換 需要考慮十左右字符是否都在字典中 在則為 則十消失 如果左邊不在右邊在則變1 如果左邊在右邊不在則變0 如果左右都不在則變10 還是蠻復(fù)雜的
//string date = "二零一二年二月二一日";
string strNumb = "一1 二2 三3 四4 五5 六6 七7 八8 九9 零0" ;
string [] strNumbs = strNumb.Split(' ' );
string nullYear = "" ;
Dictionary char , char> years = new Dictionary char, char >();
for (int i = 0; i strNumbs.Length; i++) {
years.Add(strNumbs[i][0], strNumbs[i][1]);
}
//years.Add('年', '-');
//years.Add('月', '-');
for (int i = 0; i date.Length; i++) {
if (years.ContainsKey(date[i])) {
nullYear += years[date[i]];
} else if (date[i] == '年' || date[i] == '月' ) {
nullYear += '-' ;
} else if (date[i] == '十' years.ContainsKey(date[i + 1]) !years.ContainsKey(date[i - 1])) {
nullYear += '1' ;
} else if (date[i] == '十' !years.ContainsKey(date[i + 1]) years.ContainsKey(date[i - 1])) {
nullYear += '0' ;
} else if (date[i] == '十' !years.ContainsKey(date[i + 1]) !years.ContainsKey(date[i - 1])) {
nullYear += "10" ;
}
}
Console .WriteLine(nullYear);
Console .ReadKey();
}
}
}
e、泛型集合練習(xí)2中日期轉(zhuǎn)換提取為方法
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
namespace _07_日期Change {
class Program {
static string str = "一1 二2 三3 四4 五5 六6 七7 八8 九9 零0" ;
static string [] strs = str.Split( ' ');
static Dictionary char, char > money = new Dictionary char , char >();
static void Main( string[] args) {
for (int i = 0; i strs.Length; i++) {
money.Add(strs[i][0], strs[i][1]);
}
//string date = "二零一二年二月二一日";
string date = "二零一二年二十月二十一日" ;
date = newstr(date);
string nullYear = "" ;
//money.Add('年', '-');
//money.Add('月', '-');
for (int i = 0; i date.Length; i++) {
if (money.ContainsKey(date[i])) {
nullYear += money[date[i]];
} else if (date[i] == '年' || date[i] == '月' ) {
nullYear += '-' ;
}
}
Console .WriteLine(nullYear);
Console .WriteLine(date);//二零一二年一二月二一日
Console .ReadKey();
}
//十左右字符都在字典中 那么十消失 如果左邊不在右邊在則變1 如果左邊在右邊不在則變0 如果左右都不在則變10
public static string newstr( string str) {
string newstr = "" ;
for (int i = 0; i str.Length; i++) {
if (str[i] == '十' ) {
bool left = money.ContainsKey(str[i - 1]);
bool right = money.ContainsKey(str[i + 1]);
if (left right) {
newstr += "" ;
} else if (right) { //!left
newstr += "一" ;
} else if (left) { // !right
newstr += "零" ;
} else {//if (!left !right)
newstr += "一零" ;
}
} else {
newstr += str[i];
}
}
return newstr;
}
}
}
f、泛型集合練習(xí)之翻譯軟件
復(fù)制代碼 代碼如下:
View Code
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _05_翻譯軟件 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
Dictionary string , string> dic = new Dictionary string, string >();
private void btnChange_Click( object sender, EventArgs e) {
if (dic.ContainsKey(txtEnglish.Text)) {
txtChina.Text = dic[txtEnglish.Text];
} else {
MessageBox .Show("請購買新的字典" );
}
}
private void Form1_Load( object sender, EventArgs e) {
string [] filecon = File .ReadAllLines( "英漢詞典TXT格式.txt" , Encoding .Default);//格式遵循abandon v.拋棄,放棄
for (int i = 0; i filecon.Count(); i++) {
string [] arr = filecon[i].Split(new char[] { ' ' }, StringSplitOptions .RemoveEmptyEntries);
if (!dic.ContainsKey(arr[0])) {
dic.Add(arr[0], arr[1]);
}
}
}
}
}
您可能感興趣的文章:- Java中的collection集合類型總結(jié)
- js正則函數(shù)match、exec、test、search、replace、split使用介紹集合
- SQL集合函數(shù)中case when then 使用技巧
- 使用Enumeration和Iterator遍歷集合類詳解
- Python中集合類型(set)學(xué)習(xí)小結(jié)
- Python set集合類型操作總結(jié)
- C#中DataSet轉(zhuǎn)化為實體集合類的方法
- 集合類Array List HashTable實例操作練習(xí)
- Swift教程之集合類型詳解
- C++簡單集合類的實現(xiàn)方法