您的位置:首页 > 产品设计 > UI/UE

C#—Stack和Queue泛型使用

2016-04-15 17:09 375 查看

Stack泛型

/*
* 引入命名空间System.Collections。使用.Net提供的泛型类Stack<T>,实现字符串或者数字的反序。
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Stack<string> st = new Stack<string>();
string s = Console.ReadLine();
char [] a = s.ToCharArray();
foreach (var item in a)
{
st.Push(item.ToString());
}
while (st.Count>0)
{
Console.Write(st.Pop());
}
Console.ReadKey();
}
}
}


运行结果:



 

Queue泛型

/*
* 引入命名空间System.Collections。使用.Net提供的泛型类Queue<T>,实现字符串或者数字的反序。
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Queue<int> st = new Queue<int>();
int []a={0,2,3,4,5};
int sum = 0;
foreach (var item in a)
{
st.Enqueue(item);
}
while (st.Count>0)
{
sum += st.Peek();
Console.Write(st.Dequeue());
}
Console.WriteLine("\n出队元素之和为:{0}", sum);
Console.ReadKey();
}
}
}


运行结果:



泛型约束

/*
* 泛型约束应用实例
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList ls = new ArrayList();
int []a={12,45,16,26};
ls.AddRange(a);
MyClass.Sort<ArrayList>(ls);
foreach(int item in ls)
Console.WriteLine(item);
Console.ReadKey();
}
}
class MyClass {
public static void Sort<T>(T s) where T : ArrayList    //泛型约束,T适合于ArrayList集合
{
s.Sort();
}
}
}


运行结果:



注意:

where T :ArrayList      用where关键字来给Sort泛型方法添加了约束,约束了T类型的范围。

当返回T类型值时,用 return default(T);    //通过default确定返回的是引用类型还是值类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#