c# - 在 C# 的 ListView 中删除相同的数字

标签 c# .net winforms listview random

基本上,我的程序生成随机数 1,2 或 3 并循环 9 次。我想知道如何从 ListView 中删除重复的数字,使其只包含 1 2 3。

这可以使用 IEnumerable.Except 来完成吗?

private void button3_Click(object sender, EventArgs e)
{
     Random rand = new Random();
     for (int i = 1; i < 10; i++)
     {
          lbl_Numb_1.Text = rand.Next(1, 4).ToString();
          ListViewItem lvi = new ListViewItem(lbl_Numb_1.Text);

          listView3.Items.Add(lvi);
     }
}

enter image description here

最佳答案

您可以使用 HashSet存储您的号码。

或者使用 LINQ 和 distinct像这样删除重复的值:

var values = Enumerable.Range(0, 9).OrderBy(x => rng.Next(1, 4)).Distinct();
foreach (var value in values)
{
   ListViewItem lvi = new ListViewItem(value);
   listView3.Items.Add(lvi);
}

如果你想使用第二种变体,不要忘记添加命名空间:

using System.Linq;

关于c# - 在 C# 的 ListView 中删除相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31979488/

相关文章:

c# - 显示 MvxDialogFragment 的简单方法是什么?

c# - 如何组织交易?

.net - 为 .Net Framework 4.0 构建的 WIX 自定义操作不起作用?有什么办法解决?

c# - DataGridView 中的图像问题

c# - 无法加载引用程序集以从网站项目执行

c# - 在 C# 中将 excel 工作表提取到字符串中

c# - 如果您手动检测到线程错误,则抛出适当的异常

c# - 如何使 .net 中的网络浏览器使用最新的 Internet Explorer

c# - 发送大量短信时,批量短信应用程序挂起

c# - 访问冲突 : Attempted to read or write protected memory