You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中WPF ListBox随机添加元素时AddRange方法报错求助

问题解决:WPF ListBox无法使用AddRange方法

报错原因

WPF中ListBox.Items是ItemCollection类型,这个类没有提供AddRange方法,这就是你代码里AddRange报错的根本原因。

解决方案

针对你的需求,推荐以下两种简单可行的实现方式:

方式1:循环逐个添加元素

直接遍历随机选出的3个元素,用Items.Add()逐个添加到ListBox中:

// 生成随机选择的3个元素(原列表元素无重复,可省略Distinct())
var randomItems = topLevel.OrderBy(x => Guid.NewGuid()).Take(3);
// 逐个添加到ListBox
foreach (var item in randomItems)
{
    lst2.Items.Add(item);
}

方式2:直接绑定ItemsSource(更符合WPF设计思路)

WPF更推荐通过ItemsSource绑定数据源的方式来填充ListBox,这种写法更简洁:

// 生成随机选择的3个元素并转为List
var randomItems = topLevel.OrderBy(x => Guid.NewGuid()).Take(3).ToList();
// 直接绑定数据源
lst2.ItemsSource = randomItems;

优化随机选择逻辑

用Guid.NewGuid()生成随机排序依据是可行的,但如果想要更标准的随机数生成方式,可以改用Random类:

var random = new Random();
var randomItems = topLevel.OrderBy(x => random.Next()).Take(3);
// 后续添加或绑定逻辑同上

注意:Random实例只需创建一次,避免在循环或多次调用时重复创建,否则可能生成重复的随机序列。

内容的提问来源于stack exchange,提问作者donaldD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:20:26