我有以下返回集合的方法,因此我可以从 MVC 中构建下拉菜单。问题是,我想替换集合中值中的一个子字符串,但我不确定如何在 C# 中执行此操作(我是一个经典的 vb 人)。
public class RolesManagement
{
public static IEnumerable<string> BuildRoles(string DesiredRole)
{
var UserRoles = Roles.GetAllRoles();
IEnumerable<string> roles;
roles = UserRoles.Where(x => x.Contains("Sub")).Except(rejectAdmin);
return roles;
}
}
为简洁起见,以上内容已被简化。角色集合中的每个角色如下所示: 子用户 子管理员 副经理。
我只是想回来 用户 行政 经理
请问在 C# 中最好的方法是什么?
我的猜测是,我必须执行 foreach 并替换每个循环中的子字符串,并在移动到下一项之前重新填充值。
如果您能提供一个代码示例,那就太好了,因为我似乎仍然被语法问题绊倒了。
非常感谢!
最佳答案
您可以使用 LINQ 做到这一点。
roles = UserRoles
.Where(x => x.Contains("Sub"))
.Except(rejectAdmin)
.Select(x => x.Replace("Sub", ""));
编辑:请注意,此方法只是替换 roles
中所有字符串中所有出现的字符串“Sub”。这是一个非常广泛的笔触,如果您只想进行您提到的替换,您可能需要使用不同的 lambda 函数。有关这方面的帮助,请参阅 Romoku 的帖子。
关于C# 如何对集合执行字符串替换方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153305/