脚本宝典收集整理的这篇文章主要介绍了C#中的集合,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
C#中有很多集合类型,比如List<T>,Dictionary<TKey,TValue>,这些是我们常用的,但也有一些少众的场合使用的集合:特征类型的ReadOnly集合,Sort集合;封装特定算法类型的集合:Queue<T>(先进先出),Stack<T>(后进先出),LinkedList<T>(链表,每个元素承上启下);这些集合都是在特定的场合下使用,因为他们的特性限制了他的使用场景。
/// <summary> /// 只读List /// </summary> static void ReadOnlyListtest() { IReadOnlyList<string> readOnlyList = new List<string>() { "a", "b", "c" }; foreach (VAR ITem in readOnlyList) { Console.WriteLine(item); } /*输出结果 a b c */ } /// <summary> /// 只读字典 /// </summary> static void ReadOnlyDictionaryTest() { var readOnlyDictionary = new ReadOnlyDictionary<int, string>( new Dictionary<int, string> { {5,"五"}, {1,"一"}, {10, "十"} }); foreach (var item in readOnlyDictionary) { Console.WriteLine($"{item.Key}~{item.Value}"); } /*输出结果 5~五 1~一 10~十 */ }
/// <summary>
/// 排序列表
/// </summary>
static void SortListTest()
{
var sortList = new SortedList<int, string>();
sortList.Add(10, "十");
sortList.Add(5, "五");
sortList.Add(1, "一");
Console.WriteLine(sortList.Keys);
foreach (var item in sortList)
{
Console.WriteLine($"{item.Key}~{item.Value}");
}
/*输出结果
1~一
5~五
10~十
*/
}
/// <summary>
/// 排序字典
/// </summary>
static void SortDictionaryTest()
{
var sortDic = new SortedDictionary<int, string>();
sortDic.Add(10, "十");
sortDic.Add(5, "五");
sortDic.Add(1, "一");
Console.WriteLine(sortDic.Keys);
foreach (var item in sortDic)
{
Console.WriteLine($"{item.Key}~{item.Value}");
}
/*输出结果
1~一
5~五
10~十
*/
}
/// <summary>
/// 排序set,不含重复值
/// </summary>
static void SortSetTest()
{
var sortSet = new SortedSet<int>();
sortSet.Add(10);
sortSet.Add(5);
sortSet.Add(1);
sortSet.Add(1);
foreach (var item in sortSet)
{
Console.WriteLine(item);
}
/*输出结果
1
5
10
*/
}
/// <summary>
/// 链表:每个元素承上启下
/// </summary>
static void LinkedListTest()
{
var linkedList = new LinkedList<string>();
linkedList.AddLast("2");
linkedList.AddLast("3");
linkedList.AddLast("5");
linkedList.AddFirst("1");
linkedList.AddBefore(linkedList.Find("5"), "4");
foreach (var item in linkedList)
{
Console.WriteLine(item);
}
Console.WriteLine($"2前面的值:{linkedList.Find("2").Previous.Value}");
Console.WriteLine($"2后面的值:{linkedList.Find("2").Next.Value}");
/*输出结果
1
2
3
4
5
2前面的值:1
2后面的值:3
*/
}
/// <summary>
/// 哈希集合
/// </summary>
static void HashSetTest()
{
var hashSet = new HashSet<string>();
hashSet.Add("a");
hashSet.Add("c");
hashSet.Add("b");
hashSet.Add("a");
hashSet.Add("c");
hashSet.Add("b");
foreach (var item in hashSet)
{
Console.WriteLine(item);
}
/*输出结果
a
b
c
*/
}
/// <summary>
/// 队列:先进先出
/// </summary>
static void QueueTest()
{
var queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
foreach (var item in queue)
{
Console.WriteLine(item);
}
Console.WriteLine($"dequeue元素:{queue.Dequeue()}");
/*输出结果
1
2
3
dequeue元素:1
*/
}
/// <summary>
/// 堆栈:后进先出
/// </summary>
static void StackTest()
{
var stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);
foreach (var item in stack)
{
Console.WriteLine(item);
}
//pop元素
Console.WriteLine($"pop元素:{stack.Pop()}");
/*输出结果
3
2
1
pop元素:3
*/
}
以上是脚本宝典为你收集整理的C#中的集合全部内容,希望文章能够帮你解决C#中的集合所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。