在 C# 中使用 Linq 进行字符串替换

2023-11-22


public class Abbreviation
{
    public string ShortName { get; set; }
    public string LongName { get; set; }
}

我有一个缩写对象列表,如下所示:


List abbreviations = new List();
abbreviations.add(new Abbreviation() {ShortName = "exp.", LongName = "expression"});
abbreviations.add(new Abbreviation() {ShortName = "para.", LongName = "paragraph"});
abbreviations.add(new Abbreviation() {ShortName = "ans.", LongName = "answer"});

string test = "this is a test exp. in a para. contains ans. for a question";

string result = test.Replace("exp.", "expression")
...

我期望结果是: “这是段落中的测试表达式,包含问题的答案”

目前我正在做:


foreach (Abbreviation abbreviation in abbreviations)
{
    test = test.Replace(abbreviation.ShortName, abbreviation.LongName);
}
result = test;

想知道是否有更好的方法结合使用 Linq 和 Regex。


如果你真的想缩短你的代码,你可以使用ForEach上的扩展方法List:

abbreviations.ForEach(x=> test=test.Replace(x.ShortName, x.LongName));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中使用 Linq 进行字符串替换 的相关文章

随机推荐

  • 在 VS 2010 中禁用 VB.NET 10 功能

    有没有办法在 VS 2010 中禁用 Visual Basic 10 语言功能 我们的开发团队已转移到 Visual Studio 2010 但我们仍然必须保持与 Visual Studio 2008 的向后兼容性 有没有办法禁用新的语言功
  • ActiveRecord::AssociationTypeMismatch:用户预期,得到 Fixnum

    我不明白为什么会出现以下错误 ActiveRecord AssociationTypeMismatch User 29943560 expected got Fixnum 当我在 Rails 控制台中执行此操作时 game Game cre
  • UTF-8 特殊字符不显示

    我试图找出为什么像这样的字符 显示像空盒子 它们是 unicode 字符 字符集是 utf 8 这可能是一个没有字形的字体问题吗 有任何想法吗 详细信息 Html页面 我使用firefox 16 0 1 Windows 7 像这篇文章中的页
  • 如何在Visual Studio中编译C++文件?

    我是 Visual Studio 新手 不知道如何编译 cpp 文件 我只制作了一个 cpp 文件 ctr n gt Visual C gt C 文件 并尝试编译它 但是在通常有编译按钮的地方 比如 c 有一个奇怪的 附加 按钮 我不明白发
  • Angular-app、(ui-)router 中解析器的身份验证和顺序

    这个问题指的是角度应用程序项目及其对用户进行身份验证的方式 原始实现通过在路由器上使用解析子句来保护对某些 url 的访问 这看起来像 routeProvider when projects templateUrl projects pro
  • VBA:将文本转换为数字

    我有一列数字 无论出于何种原因 它们都被格式化为文本 这使我无法使用算术函数 例如小计函数 将这些 文本数字 转换为真实数字的最佳方法是什么 Here is a screenshot of the specific issue 我已经尝试过
  • 从加载Picasso的ImageView获取Bitmap

    我有一个加载图像的方法 如果图像之前尚未加载 它将在服务器上查找它 然后它将其存储在应用程序文件系统中 如果它位于文件系统中 则会加载该图像 因为这比从服务器提取图像要快得多 如果您之前加载过图像而没有关闭应用程序 它将存储在静态字典中 以
  • VC++ 中 invalidate、update 方法的作用是什么

    我对 C 中的窗口函数有一点疑问 到底是什么 invalidate 功能做什么 当我们需要调用它时 它会发送什么消息 还有什么是 update 功能 是 invalidaterect 作品类似于 invalidate 功能 Thanks C
  • 如何获取某个目录的父文件夹的路径?

    当我有这个目录路径时 C Program Files x86 Embarcadero 我正在寻找的函数应该返回 C Program Files x86 我已经尝试过这段代码 但它仅适用于文件 不适用于目录 function GetParen
  • 使用 Beautiful Soup 从“img”标签中提取“src”属性

    考虑 div class someClass a href href img alt some src some a div 我想提取来源 即src 来自图像的属性 即img 使用 Beautiful Soup 标签 我使用 Beautif
  • 如何使用 Python csv reader 循环遍历特定范围的行?

    如何使用 Python csv reader 循环遍历特定范围的行 以下代码循环遍历所有行 with open trainFile rt as csvfile spamreader csv reader csvfile delimiter
  • 使用 openpyxl 或 xl* 或 xlsxwriter 在工作簿中移动工作表?

    我已经阅读了文档 openpyxl xlwt xlrd xlutils XLSX作家 我找不到移动工作表的方法Excel工作簿 测试在末尾添加了一个工作表 具体来说 我有一个日历之类的 JAN FEB DEC 当需要时我需要更换几个月 如果
  • 限制非管理员用户的路由访问

    Goal 我正在尝试为我的登录用户创建管理路由限制 我尝试检查我的用户是否是log in 并且如果用户类型是Admin 如果是 我想允许他们访问管理路由 否则 响应 404 路线 php router gt group middleware
  • RGB888 至 RGB565 / 位移位

    我想使用位移位将三个字符组合成一个短片 这是为了实现 RGB565 调色板 其中 5 位用于红色 6 位用于绿色 5 位用于蓝色 这是我的示例程序 我只是缺少中间的一步 我认为我需要在哪里做一些操作 include
  • Stata有类似Java的try and catch机制吗?

    我正在写一个 do检查一些变量是否存在 dta文件以及检查这些变量的某些值是否存在 但是 我的代码在遇到无效的变量名称时停止执行 我知道我混合了 Java 和 Stata 编码 这是完全不合适的 但是有什么办法我可以做这样的事情 try s
  • Django csrf 请求上下文

    如果我包括 csrf token 在我的表单模板中并在我的视图中导入 RequestContext 我是否必须添加我认为的其他内容 或者是否会考虑 csrf 保护 如下所示 from django shortcuts import rend
  • 带子菜单的纯CSS垂直菜单

    我做了我的研究 并且能够复制我正在寻找的东西 嗯 我只需要一个更具体的垂直 纯 CSS 菜单的帮助 我希望我的子菜单弹出窗口显示在 a 左侧 10 像素处 而不是 a 左侧li属性就像互联网上找到的大多数示例一样 我也在寻找最简单 纯 CS
  • 双 * (splat) 运算符有什么作用

    你见过这样声明的函数吗 def foo a b end 我的理解是单 是 splat 运算符 什么是 mean Ruby 2 0 引入了关键字参数 并且 行为就像 但对于关键字参数 它返回带有键 值对的哈希 对于这段代码 def foo a
  • C# - 具有系统时间意识的 Windows 服务

    我正在考虑编写一个 Windows 服务 该服务将在用户指定的时间打开或关闭某些功能 使用我将提供的配置实用程序 基本上 用户会指定 PC 进入 仅工作 模式 阻止 Facebook 和其他分散注意力的网站 的特定时间 然后当这些时间到时
  • 在 C# 中使用 Linq 进行字符串替换

    public class Abbreviation public string ShortName get set public string LongName get set 我有一个缩写对象列表 如下所示 List abbreviati