C#集合基础与运?- 百度文库 ر

(5)б(SortedList)

SortedListǻڼԼϽļֻ࣬ÿֻһӦֵҪÿӦֵʹLookupʹforeachüϣöصKeyValuePair͵ԪءʹAddԪأʹӡ磺

class Program {

static void Main(string[] args) {

SortedList sort = new SortedList(); sort.Add(\Ԫ sort[\Ԫ PrintSorted(sort);//Ԫ

Console.WriteLine(\Ƿ[K3]\ string value = null;

Console.WriteLine(\Ƿ[K2]\ Console.WriteLine(\ֵ\ Console.Read(); }

//Ԫ

private static void PrintSorted(SortedList s) {

IEnumerable> list = s.Where(t => true); foreach (KeyValuePair t in list) {

Console.WriteLine(t.Key + \ } } } (6)ֵ

ֵмͱдObjectGetHashCode()ֻҪֵҪȷԪصλãͻGetHashCode()ʵGetHashCode()⣬ͻʵIEquatable.Equals()дObjectEquals()

ΪͬĶܷͬɢ(GetHashCodeֵ)A.Equals(B)trueABɢͱͬƺе֣dzҪΪֵȡGetHashCode()ʵֵĴ롣

1Dictionary

Dictionary֧ÿһֵSortedListơ 2Lookup

LookupѼӳ䵽һֵϡLookupToLookup()չ÷һLookupToLookup()ҪһFunc͵ίвFuncͶ˼ѡ

ToLookup()һĺڶһϽвһ1n ӳ䡣 ԷĽݷ飬һֵ乩ѯʹá磺

class Program {

static void Main(string[] args) {

List list = new List() { \ var lookup=list.ToLookup(x => x.Length);//Ԫصijȷ foreach (var t in lookup) {

List temp=t.ToList();//һתɼ temp.ForEach(x=>Console.Write(x+\\ Console.WriteLine(); }

Console.Read(); } }

3SortedDictionary

SortedDictionaryһеԪظݼ򣬸üͱʵIComparableӿڡ

SortedDictionarySortedList

SortedListʹõڴSortedDictionary١ SortedDictionaryԪصIJɾȽϿ졣

źļϣҪ޸SortedListȽϿ졣

ĸԭSortedListʵֵһļϣSortedDictionaryʵֵһֵļϡ

(7)(ISetӿ)

ظԪصļϳΪ.NET Framework(HashSetSortedSet),ǶʵISetӿڡHashSetDzظԪصбSortedSetDzظԪصб

4.ɹ۲ļ()

(1)ObservableCollection

ObservableCollectionΪWPFģUIͿԵ֪ϵı仯ΪֻҪ޸ObservableCollection󼯺еԪأͻCollectionChanged ¼

(2)ʹʾ class Program {

static void Main(string[] args) {

ObservableCollection list = new ObservableCollection(); list.CollectionChanged += ListCollectionChanged;//¼ list.Add(10);//¼ list.Add(20);//¼ list.Remove(10);//¼ Console.Read();

}

//¼

private static void ListCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) {

Console.WriteLine(\޸ĵķʽ\ if (e.OldItems != null) {

Console.WriteLine(\޸ĵλã\ Console.WriteLine(\޸ĵԪظ\ }

if (e.NewItems != null) {

Console.WriteLine(\޸ĵλã\ Console.WriteLine(\޸ĵԪظ\ }

Console.WriteLine(); } }

5.λ()

(1)BitArrayBitVector32

ҪλͿʹBitArrayBitVector32ṹǵǣBitArrayôС԰ܶλBitVector32ṹǻջģ˱ȽϿ죬ֻܰ32ΪǴһС

(2)BitArray

BitArrayһͣһint飬32λʹһԱ£ CountLength GetSet SetAll Not AndOrXor ʾ class Program {

static void Main(string[] args) {

BitArray barray = new BitArray(20); barray.SetAll(true);//λֵ PrintBitArray(barray);// barray.Set(1, false); barray[2] = false;

CountLengthɵõλLengthĴС ʹGetSetɷеλ SetAll()еλֵ Not()еλ And()Or()ǻXor() PrintBitArray(barray);// Console.Read(); }

//

private static void PrintBitArray(BitArray b) {

foreach (bool bit in b) {

Console.Write(bit ? 1 : 0); }

Console.WriteLine(); } }

(3)BitVector32

BitVector32ṹЧʸߣΪֵͣóԱ£ Data CreateMask CreateSection Data԰BitVector32ṹسһ BitVector32ṹֵʹ һ̬ΪBitVector32ṹضഴ һ̬ڴ32λеļƬ ʾ class Program {

static void Main(string[] args) {

BitVector32 b32 = new BitVector32(); PrintBitVector32(b32);//λ int bit = BitVector32.CreateMask(); for (int i = 0; i < 4; i++) {

b32[bit] = true;

Console.WriteLine(bit);

PrintBitVector32(b32);//λ b32[bit] = false;

bit = BitVector32.CreateMask(bit); }

Console.WriteLine(b32.Data);// Console.Read(); }

//

private static void PrintBitVector32(BitVector32 b32) {

for (int i = 0; i < 32; i++)