C# List<string> 如何去除重复值
时间: 2024-09-19 07:04:55 浏览: 56
在C#中,要从`List<string>`中去除重复值,可以使用LINQ(Language Integrated Query)的`Distinct()`方法。这里是示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// 创建一个包含重复值的List<string>
List<string> namesWithDuplicates = new List<string>() { "Alice", "Bob", "Charlie", "Alice", "David" };
// 使用Distinct()去重
List<string> distinctNames = namesWithDuplicates.Distinct().ToList();
// 输出去重后的结果
Console.WriteLine(string.Join(", ", distinctNames));
// 输出: Alice, Bob, Charlie, David
}
}
```
这里我们利用`Distinct()`方法返回一个新的只包含唯一元素的序列,然后通过`ToList()`将其转换回`List<string>`。
相关问题
private List<string> numberList = new List<string>();C# DataGridView中显示list<string>中的信息,当list没有满10条的时候,都显示,倒这显示;当list超过10条,显示后10条信息。倒着显示。
在C#中,你可以使用LINQ(Language Integrated Query)来实现这种分页和倒序显示的需求。假设`DataGridView`的名称为`dataGridView`,你可以按照以下方式操作:
```csharp
// 假设我们有一个名为dataItems的源列表,它可能是numberList的一个副本
List<string> dataItems = numberList.Take(10).Reverse().ToList(); // 取出前10个并倒序
// 如果numberList大于10
if (numberList.Count > 10)
{
int startIndex = numberList.Count - 10; // 开始索引从最后一个元素开始计数
dataItems = numberList.Skip(startIndex).Take(10).ToList(); // 取出剩余的最后10个
}
// 现在,将这些数据绑定到DataGridView
dataGridView.DataSource = dataItems;
```
这样,`dataGridView`会显示`numberList`中的数据,如果列表长度超过10,则只显示最后10条,按倒序排列。
c# List<string> 随机选取50个元素
可以使用C#中的Random类和List的Count属性来实现。具体代码如下:
```csharp
List<string> list = new List<string>(); // 假设这里已经有了字符串列表
Random rand = new Random();
List<string> randomList = new List<string>();
int count = 50; // 随机选取的元素个数
while (randomList.Count < count && list.Count > 0)
{
int index = rand.Next(list.Count);
randomList.Add(list[index]);
list.RemoveAt(index);
}
// randomList 中就是随机选取的50个元素
```
这段代码先创建了一个空的字符串列表`randomList`,然后使用`Random`类生成随机数,从原列表`list`中随机取出一个元素,添加到`randomList`中,并从`list`中删除该元素。重复此操作直到`randomList`中有50个元素或者`list`中没有元素为止。最后,`randomList`就是随机选取的50个元素。
阅读全文