找到 2628 篇文章 关于 C#
7K+ 次浏览
C# 中的集合是 HashSet。C# 中的 HashSet 消除了数组中重复的字符串或元素。在 C# 中,它是一个优化的集合声明 HashSet −var h = new HashSet(arr1);上面,我们在 HashSet 中设置了已声明的数组 arr1。现在将其设置为数组以删除重复的单词 −string[] arr2 = h.ToArray();让我们看一个使用 C# HashSet 删除重复字符串的示例。这里,我们有重复的元素 −示例using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { string[] arr1 = {"Table", "Chair", "Pen", "Clip", "Table"}; ... 阅读更多
686 次浏览
主线程进程中第一个执行的线程称为主线程。当 C# 程序开始执行时,会自动创建主线程。子线程使用 Thread 类创建的线程称为主线程的子线程。以下是一个显示如何创建主线程和子线程的示例 −示例 现场演示using System; using System.Threading; namespace Demo { class Program { static void Main(string[] args) { Thread th = Thread.CurrentThread; th.Name = "MainThread"; Console.WriteLine("This is {0}", th.Name); Console.ReadKey(); } } }输出This is MainThread
578 次浏览
Main 方法是所有 C# 程序的入口点。它说明类在执行时执行的操作。Main() 的有效变体是 −static void Main(string[] args这里,static − 对象不需要访问静态成员void − 方法的返回类型Main − 任何 C# 程序的入口点。程序执行从此处开始。string[] args − 用于 C# 中的命令行参数。示例这是一个示例 −using System; namespace Program { public class Demo { public static void Main(string[] args) { Console.WriteLine("Welcome!"); Console.ReadKey(); } } }
147 次浏览
让我们首先设置一个包含 5 个字符的数组 −char[] ch = new char[15]; ch[0] = 'T'; ch[1] = 'r'; ch[2] = 'i'; ch[3] = 'c'; ch[4] = 'k';现在将它们转换为字符串 −string str = new string(ch);这是完整的代码 −示例Using System; class Program { static void Main() { char[] ch = new char[15]; ch[0] = 'T'; ch[1] = 'r'; ch[2] = 'i'; ch[3] = 'c'; ch[4] = 'k'; // 转换为字符串 string str = new string(ch); Console.WriteLine(str); } }
409 次浏览
列表是一个泛型集合,用于保存相同数据类型的元素。要克隆列表,可以使用 CopyTo 方法。声明一个列表并添加元素 −List < string > myList = new List < string > (); myList.Add("Programming"); myList.Add("Web Dev"); myList.Add("Database");现在创建一个新数组并将列表克隆到其中 −string[] arr = new string[10]; myList.CopyTo(arr);这是完整的代码 −示例 现场演示using System; using System.Collections.Generic; public class Demo { public static void Main() { List < string > myList = new List < string > (); myList.Add("Programming"); ... 阅读更多
3K+ 次浏览
信号量类允许您设置对临界区有访问权限的线程数的限制。该类用于控制对资源池的访问。System.Threading.Semaphore 是信号量的命名空间,因为它具有实现信号量所需的所有方法和属性。要在 C# 中使用信号量,您只需要实例化 Semaphore 对象的一个实例即可。它至少有两个参数 −参考−MSDNSr.No.构造函数和描述1Semaphore(Int32, Int32)初始化 Semaphore 类的新的实例,指定初始条目数和最大并发条目数。2Semaphore(Int32, Int32, String) −初始化 ... 阅读更多
236 次浏览
在 C# 中使用 ArrayList.Synchronized 方法同步 C# 中的 ArrayList。让我们看一个使用 C# 中的 SyncRoot 属性锁定集合的示例 −ArrayList arr = new ArrayList(); lock(arr.SyncRoot) { foreach (object ele in arr) { } }以下是检查 ArrayList 同步状态的完整示例 −示例 现场演示using System; using System.Collections; public class Demo { public static void Main() { ArrayList arr1 = new ArrayList(); arr1.Add("One"); arr1.Add("Two"); arr1.Add("Three"); arr1.Add("Four"); arr1.Add("Five"); ... 阅读更多
1K+ 次浏览
当一个线程锁定一个资源而另一个线程同时需要该资源时,就会发生死锁。此问题在多处理系统中经常发生。当两个或多个线程等待属于另一个线程的资源时,可能会发生这种情况。以下是一个示例 −线程一线程二获取锁定 P获取锁定 Q请求锁定 Q请求锁定 P线程一将无法获取锁定 Q,因为它属于线程二。同样,线程二将无法获取锁定 P,因为它的原始所有者是线程一。死锁也可能是三方死锁,如果三个线程和 ... 阅读更多
1K+ 次浏览
设置两个字典 −Dictionary < string, int > dict1 = new Dictionary < string, int > (); dict1.Add("laptop", 1); dict1.Add("desktop", 2); Dictionary < string, int > dict2 = new Dictionary < string, int > (); dict2.Add("desktop", 3); dict2.Add("tablet", 4); dict2.Add("mobile", 5);现在使用 HashSet 和 UnionWith() 方法合并两个字典 −HashSet < string > hSet = new HashSet < string > (dict1.Keys); hSet.UnionWith(dict2.Keys);这是完整的代码 −示例using System; using System.Collections.Generic; class Program { static void Main() { Dictionary < string, int > dict1 = new Dictionary < string, int > (); ... 阅读更多