C# 中的集合

王林
发布: 2024-09-03 15:27:48
原创
659 人浏览过

集合可以定义为C#中使用的一种类,用于动态内存分配,用于存储和获取类的内容,并且可以用于执行多种操作。在 C# 中,集合以“System.Collections.Generic 类”、“System.Collections”的形式工作。并发类”和“System.Collections 类”。在存储模式方面,集合复制了数组的数据结构,唯一的区别是,与数组不同,集合不需要定义所需的大小。

有 3 种使用集合的方法,如下所示

  • System.Collections.Generic 类
  • System.Collections.Concurrent 类
  • System.Collections 类

C# 中集合的示例

下面是 C# 中各种类型集合的一些示例:-

示例 #1 – ArrayList

它是 System.Collections 的集合。它允许保存多种数据类型的数据,并且随着数据的添加,它会自动扩展。

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArrayListExample
{
class Program
{
static void Main(string[] args)
{
var data = new ArrayList();   //arraylist collection
data.Add("Demo");             // add element
data.Add(1);
data.Add(5);
data.Add(26);
data.Add(56.4);
data.Add(32);
data.Remove(5);              // remove element
foreach (object obj in data)   // iteration
{
Console.WriteLine(obj);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中,有一个ArrayList类型的集合。 ArrayList中有一些元素。 Add()和Remove()分别是用于向集合中添加和删除元素的方法。 foreach 用于迭代并显示值。

输出:

C# 中的集合

示例#2 – 我们将在这里使用列表操作

它是 System.Collections.Generic 命名空间的集合。

 代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new List<string>();       // list collection
value.Add("Cricket");                       // add element
value.Add("Football");
value.Add("Volleyball");
value.Add("Hockey");
value.Add("Basketball");
value.Add("Tennis");
value.Remove("Football");              // remove element
value.Remove("Tennis");
value.Insert(3, "Badminton");         // insert element
foreach (string st in value)
{
Console.WriteLine(st);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中,集合是列表类型的。 Add() 和Remove() 方法分别用于向列表中添加或删除元素。 Insert() 还用于将元素插入列表中定义的索引处。 Foreach 用于迭代并显示值。

输出:

C# 中的集合

示例# 3:排序列表

它由集合中的键和值组成。

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new SortedList<string, int>();            // sortedlist collection
value.Add("java", 3);                                               // add element
value.Add("javascript", 4);
value.Add("c-sharp", 5);
value.Add("dotnet", 25);
value.Add("python", 27);
value.Add("typescript", 57);
foreach (var pair in value)
{
Console.WriteLine(pair);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中,集合的类型是sortedlist。列表中有多对键和值。它基本上代表了排序后的键和值对。

输出:

C# 中的集合

示例# 4:链表

它基本上允许顺序访问元素。

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new LinkedList<int>();             // linkedlist collection
value.AddLast(13);          // add element
value.AddLast(33);
value.AddLast(23);
value.AddLast(51);
value.AddLast(60);
value.AddFirst(4);
value.AddFirst(6);
LinkedListNode<int> node = value.Find(51);         // find the node
value.AddBefore(node, 40);
foreach (int num in value)
{
Console.WriteLine(num);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中,集合的类型是Linkedlist。 AddLast() 用于将元素放置在列表的最后一个位置,而 AddFirst() 用于将元素放置在列表的第一个位置。链表由一个节点组成。 Find() 用于查找值并在其前面放置值。

输出:

C# 中的集合

示例# 5 – 字典

它由唯一的一对键和值组成。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var pair = new Dictionary<string, string>();           // dictionary collection
pair.Add("in", "India");                                                // add keys and values
pair.Add("af", "Africa");
pair.Add("us", "United States");
pair.Add("ja", "Japan");
pair.Add("ch", "China");
pair.Add("ca", "Canada");
Console.WriteLine("Keys present in the dictionary:");
var key = new List<string>(pair.Keys);
foreach (string k in key)
{
Console.WriteLine("{0}", k);
}
Console.WriteLine("Values present in the dictionary:");
var value = new List<string>(pair.Values);
foreach (string val in value)
{
Console.WriteLine("{0}", val);
}
Console.ReadLine();
}
}
}
登录后复制

在上面的示例中,集合是字典类型,其中包含键及其值。 Foreach 用于键和值的迭代。

输出

C# 中的集合

示例#6 – 堆栈

它基于后进先出结构。队列的最后一个元素是第一个被删除的元素。

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new Stack<int>();                          // stack collection
value.Push(10);                                                    // adding the element
value.Push(40);
value.Push(33);
value.Push(62);
value.Push(48);
value.Push(21);
value.Push(31);
Console.WriteLine(value.Pop());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (int item in value)
{
Console.WriteLine(item);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中,集合的类型是stack。 Push() 用于将元素插入到顶部。 Pop() 用于移除并返回元素,Peek() 用于返回栈顶元素。

输出:

C# 中的集合

示例#7 – 队列

它基于先进先出结构。队列的第一个元素是第一个被删除的元素。

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{static void Main(string[] args)
{
var value = new Queue<string>();                // queue collection
value.Enqueue("Item 1");                               // add element
value.Enqueue("Item 2");
value.Enqueue("Item 3");
value.Enqueue("Item 4");
value.Enqueue("Item 5");
value.Enqueue("Item 6");
value.Enqueue("Item 7");
Console.WriteLine(value.Dequeue());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (string num in value)
{
Console.WriteLine(num);
Console.ReadLine();
}
}
}
}
登录后复制

在上面的例子中;集合是队列类型。 Enqueue()用于在队列末尾插入元素。 Dequeue() 用于从队列开头删除元素 Peek() 用于返回项目。

输出:

C# 中的集合

所以我们可以通过多种方式使用这些集合。集合类似于数组。  与数组不同,这里我们不需要预先定义大小。

以上是C# 中的集合的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!