C# string[]去重,去除空行
时间: 2024-12-23 12:19:37 浏览: 5
在C#中,如果你有一个`string[]`数组,想要去除其中的重复字符串,并且移除所有空行(即只包含空白字符的行),你可以采用以下几种方法:
1. 使用`Distinct()`和`Where()`方法:C# LINQ(Language Integrated Query)提供了一种方便的方式来处理这种情况。首先使用`Distinct()`获取唯一字符串,然后过滤掉空行。
```csharp
string[] uniqueStrings = array.Distinct().Where(s => !string.IsNullOrWhiteSpace(s)).ToArray();
```
2. 自定义方法:如果没有使用LINQ,你可以遍历数组,将非空行添加到新的列表中,这样就能自然地避免重复并排除空行。
```csharp
List<string> distinctStrings = new List<string>();
foreach (string s in array)
{
if (!string.IsNullOrWhiteSpace(s))
{
if (!distinctStrings.Contains(s))
distinctStrings.Add(s);
}
}
string[] uniqueAndNoEmptyLines = distinctStrings.ToArray();
```
这两种方法都能有效地从给定的`string[]`数组中去除重复的字符串并移除空行。
相关问题
C#winfrom List String去重
在 C# WinForms 中,你可以使用 LINQ 中的 Distinct() 方法来去重一个字符串列表。以下是一个示例代码:
```csharp
List<string> myList = new List<string> { "apple", "banana", "banana", "cherry", "cherry", "cherry" };
List<string> uniqueList = myList.Distinct().ToList();
```
在这个例子中,我们首先创建一个包含重复元素的字符串列表 myList,然后使用 Distinct() 方法去重。最后,我们使用 ToList() 方法将结果转换为一个新的 List 对象 uniqueList。
如果你需要忽略字符串的大小写进行去重,你可以使用 StringComparer.OrdinalIgnoreCase 作为 Distinct() 方法的参数:
```csharp
List<string> myList = new List<string> { "apple", "banana", "BANANA", "cherry", "Cherry", "CHERRY" };
List<string> uniqueList = myList.Distinct(StringComparer.OrdinalIgnoreCase).ToList();
```
在这个例子中,我们使用 Distinct() 方法的重载版本,并传递一个 StringComparer.OrdinalIgnoreCase 参数。这将忽略字符串的大小写进行去重。
C#winfrom List String去重不使用自带方法
如果你不想使用 LINQ 中的 Distinct() 方法来去重一个字符串列表,你可以使用以下代码实现:
```csharp
List<string> myList = new List<string> { "apple", "banana", "banana", "cherry", "cherry", "cherry" };
List<string> uniqueList = new List<string>();
foreach (string item in myList)
{
if (!uniqueList.Contains(item))
{
uniqueList.Add(item);
}
}
```
在这个例子中,我们首先创建一个包含重复元素的字符串列表 myList,然后创建一个新的空列表 uniqueList,用来存储去重后的元素。
接着,我们使用 foreach 循环遍历 myList 中的每个元素。对于每个元素,我们检查它是否已经存在于 uniqueList 中,如果不存在,则将其添加到 uniqueList 中。
这个方法虽然实现简单,但是对于大规模数据集的性能可能不够高效。对于大规模数据集,使用 HashSet<T> 或者 SortedSet<T> 可能更好。
阅读全文