非泛型集合
namespace _03_01集合初步
{
public class Book
{
public string BookName { get; set; }
public string BookAuthor { get; set; }
public int BookPrice { get; set; }
public Book() { }
public Book(string bookname,string bookauthor,int bookprice )
{
this.BookName = bookname;
this.BookAuthor = bookauthor;
this.BookPrice = bookprice;
}
}
}
namespace _03_01集合初步
{
class Program
{
static void Main(string[] args)
{
// ListBeginOneDemo();
//测试foreach面试
ForeachTest();
if (list.Contains("韩寒"))
{
foreach (Book item in list)
{
if (item.BookAuthor.Equals("韩寒"))
{
item.BookAuthor = "郭敬明";
break;
}
}
}
else
{
}
Console.WriteLine("===================修改===============");
foreach (Book item in list)
{
Console.WriteLine(item.BookAuthor);
}
}
static ArrayList list = new ArrayList();
private static void ForeachTest()
{
Book book1=new Book("你是人间的四月天","林微因",50);
Book book2 = new Book("艰难的抉择", "卡莉·菲奥莉娜", 60);
Book book3 = new Book("三重门", "韩寒", 70);
list.Add(book1);
list.Add(book2);
list.Add(book3);
foreach (Object item in list)
{
Book book=(Book)item;
Console.WriteLine(book.BookAuthor);
}
}
private static void ListBeginOneDemo()
{
//集合分类:单列集合 +++++双列集合
//导入命名空间的快捷键 Ctrl+. 切换到英文输入法
ArrayList list = new ArrayList();
//添加一个元素 "张靓颖 李小龙 凤姐"
list.Add("张靓颖");
list.Add("李小龙");
list.Add("凤姐");
//遍历,绑架了谁
foreach (string item in list)
{
Console.WriteLine(item);
}
//修改,将凤姐 改成 宋小宝
/*foreach (string item in list)
{
if (item.Equals("凤姐"))
{
//foreach 只能用来遍历,不能修改值
item = "小宝";
break;
}
}*/
for (int i = 0; i < list.Count; i++)
{
if (list[i].Equals("凤姐"))
{
list[i] = "小宝";
break;
}
}
Console.WriteLine("修改后。。。。。。。。。。。。。。。");
foreach (string item in list)
{
Console.WriteLine(item);
}
//按索引删除
Console.WriteLine("我是高贵的分割线==================按索引删除第一个======");
list.RemoveAt(0);
foreach (string item in list)
{
Console.WriteLine(item);
}
//释放一个人 凤姐
list.Remove("凤姐");
Console.WriteLine("我是高贵的分割线==================释放后======");
foreach (string item in list)
{
Console.WriteLine(item);
}
//i just make a joke .释放 所有人
list.Clear();
Console.WriteLine("我是高贵的分割线==================释放所有======");
foreach (string item in list)
{
Console.WriteLine(item);
}
}
}
}
集合的自动扩容
namespace _03_02集合自动扩容
{
class Program
{
static void Main(string[] args)
{
/*
* 自动扩容:
* 如果结合中一个元素都没有的话,Capacity为0,
* 如果集合中出现第一个元素,分配4个空间,
* 如果出现第5个元素的时候,可以容纳8个元素,
* 每次扩容会扩成上次的2倍
*
*
* 1.1那么,系统怎么知道何时扩容?在哪个方法中进行了扩容。
* 解析:Add方法扩容,容量不够的时候
*
*/
int[] nums=new int[3];
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(2);
list.Add(2);
list.Add(3);
foreach (Object item in list)
{
Console.WriteLine(item);
}
Console.WriteLine(list.Capacity + " 容量"); // 6
Console.WriteLine(list.Count + " 真正存储元素个数");//5
}
}
}
集合的初始化器
namespace _03_03集合初始化器
{
public class Book
{
public string Author { get; set; }
}
}
namespace _03_03集合初始化器
{
class Program
{
static void Main(string[] args)
{
//对象初始化器
Book book = new Book() {Author="微冷的雨" };
/* ArrayList list = new ArrayList();
list.Add(book);
* */
ArrayList list = new ArrayList()
{
book
};
}
}
}
ArrayList单列集合的使用
namespace ArrayList使用
{
class book
{
public string anthony { get; set; }
// public book(string ay){
// anthony = ay;
//}
}
}
namespace ArrayList使用
{
class Program
{
static void Main(string[] args)
{
#region//arraylist
ArrayList AL = new ArrayList();
AL.Add("张三");
AL.Add("李四");
AL.Add("王二");
foreach (string item in AL)
{
Console.WriteLine(item);
}
if (AL.Contains("张三"))
{
AL.RemoveAt(0);
}
foreach (string item in AL)
{
Console.WriteLine(item);
}
book b = new book() { anthony = "作者" };
ArrayList al = new ArrayList() {
b
};
#endregion
Hashtable table = new Hashtable();
table.Add("001","qqq");
table.Add("002","www");
table.Add("003","eee");
//循环输出Hashtable的key和value
foreach (object item in table.Keys)
{
Console.WriteLine(item.ToString());
}
foreach (object item in table.Values)
{
Console.WriteLine(item);
}
foreach (DictionaryEntry item in table )
{
Console.WriteLine("{0}{1}",item.Key,item.Value);
}
//通过键(key)查询Hashtable的值( value)
string s = (string )table["001"];
Console.WriteLine(s);
}
}
}
Hashtabe双列集合的使用
namespace _03_04Dictionary双列集合
{
class Program
{
static void Main(string[] args)
{
Hashtable table = new Hashtable();
table.Add("CBC", "建设银行");
table.Add("ABC", "中国农业银行");
table.Add("ICBC","工商银行");
//方式一:遍历 根据key遍历value ,Next key的 集合
foreach (string key in table.Keys)
{
Console.WriteLine("key是"+key);
//value 如何通过key 拿到 value!@#23###
//索引器
object value=table[key];
Console.WriteLine("value是" + value.ToString());
}
Console.WriteLine("====================================");
//方式二:直接遍历value
foreach (string value in table.Values)
{
Console.WriteLine(value);
}
//03,key和Value一次遍历一个项目===(key+value)
foreach (DictionaryEntry item in table)
{
Console.WriteLine(item.Key+" "+item.Value);
}
}
}
}