C# 如何对集合执行字符串替换方法?

标签 c# collections

我有以下返回集合的方法,因此我可以从 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/

相关文章:

c# - asp 名称 'lblTest' 在当前上下文中不存在

c# 在 MS Word 中比较样式对象

java - HashMap 中的哈希冲突

java - 如何在java中对List中的map进行排序

java - 使用集合时覆盖的规则

c# - 如何安全地迭代 IAsyncEnumerable 以向下游发送集合以批量处理消息

python - 计算两个无序集合之间的 "distance"

c# - XAML 标签 : binding text content when using text styles

c# - 如何在 Outlook 中为自定义按钮添加图像图标

c# - 使用带有绑定(bind)的自定义附加属性