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

使用C#与LINQ无法为var变量添加集合?如何为无Add/AddRange的roles添加元素

如何向无Add/AddRange方法的roles集合添加元素?

嘿,这问题我熟!你遇到的情况大概率是因为userRoleRepository.Get()返回的是只读集合类型(比如IEnumerable<Role>),这种类型只支持遍历,本身没有添加元素的方法。要解决这个问题,只需要把它转换成可变集合就行,具体步骤如下:

方法一:先转换为List再添加

先把原集合转成List<Role>(可变集合,自带Add/AddRange方法),然后再添加新元素:

// 先获取原集合
var roles = userRoleRepository.Get(q => q.user_id.Equals(username, StringComparison.InvariantCultureIgnoreCase));
// 转换为可变的List
var mutableRoles = roles.ToList();
// 添加新的Role元素(假设你的Role类有对应的属性可赋值)
mutableRoles.Add(new Role { ID = "124", Name = "Jack" });

方法二:获取时直接转为List

如果你一开始就知道要修改集合,可以在获取数据的时候直接转成List,后续操作更方便:

// 获取时直接转为List
var roles = userRoleRepository.Get(q => q.user_id.Equals(username, StringComparison.InvariantCultureIgnoreCase)).ToList();
// 直接添加元素
roles.Add(new Role { ID = "124", Name = "Jack" });

小提示

如果你的Role类没有无参构造函数,记得用对应的带参构造方法创建实例,比如new Role("124", "Jack"),具体要看你的类定义来调整哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:14:33