C# 中的最佳 TStringList 对应物
在C#中,TStringList 在Delphi中是一个常用的字符串列表类,它具有许多方便的方法和属性,使得在处理字符串集合时非常方便。然而,在C#中并没有直接对应的 TStringList 类。相反,我们可以使用 `Listcsharpusing System;using System.Collections.Generic;class Program{ static void Main() { List stringList = new List(); // 添加元素 stringList.Add("Apple"); stringList.Add("Banana"); stringList.Add("Orange"); // 遍历元素 foreach (string fruit in stringList) { Console.WriteLine(fruit); } // 删除元素 stringList.Remove("Banana"); // 再次遍历元素 Console.WriteLine("%After removing Banana:"); foreach (string fruit in stringList) { Console.WriteLine(fruit); } }} 这段代码演示了如何创建一个字符串列表、添加元素、遍历列表并删除元素。然而,要实现类似 TStringList 的更高级功能,我们可以使用 LINQ 扩展方法和其他 C# 特性。LINQ 扩展方法的运用C# 的 LINQ(Language Integrated Query)提供了强大的查询和操作集合的功能。我们可以使用 LINQ 扩展方法对 `Listcsharpusing System;using System.Collections.Generic;using System.Linq;class Program{ static void Main() { List stringList = new List { "Orange", "Banana", "Apple" }; // 使用 LINQ 排序 var sortedList = stringList.OrderBy(x => x).ToList(); // 遍历排序后的列表 Console.WriteLine("Sorted List:"); foreach (string fruit in sortedList) { Console.WriteLine(fruit); } }} 上述代码使用 `OrderBy` 方法对字符串列表进行排序,并通过 `ToList` 方法将结果转换为列表。这展示了 LINQ 的简洁和强大之处。自定义比较器实现 TStringList 的功能为了实现类似 TStringList 的比较器功能,我们可以创建一个自定义比较器类,并将其传递给排序方法。以下是一个示例代码:csharpusing System;using System.Collections.Generic;class CaseInsensitiveComparer : IComparer这里,我们创建了一个 `CaseInsensitiveComparer` 类,实现了 `IComparer{ public int Compare(string x, string y) { return string.Compare(x, y, StringComparison.OrdinalIgnoreCase); }}class Program{ static void Main() { List stringList = new List { "orange", "Banana", "APPLE" }; // 使用自定义比较器排序 stringList.Sort(new CaseInsensitiveComparer()); // 遍历排序后的列表 Console.WriteLine("Case-insensitive Sorted List:"); foreach (string fruit in stringList) { Console.WriteLine(fruit); } }}