如何用LINQ匹配数组元素并替换文本中的非标准化货币格式?
货币格式标准化替换问题
已查阅资料情况
- 查阅了多篇关于C#中使用LINQ处理字符串、数组替换的资料,部分内容有参考价值,但未找到适配当前场景的最终解决方案
- 其中一个关于用LINQ实现字符串替换的方案或许可行,但不确定将现有数组转为列表是否值得
问题背景
源文档仅提供PDF格式,同一货币存在多种非标准化写法,例如USD的写法包括:
- US $
- US (S)
- 其他类似变体
现有实现
已定义以下用于货币格式标准化的数组(当前运行正常):
var incCurrDollar = new[] { "US dollar ($)", "US ($)", "US $" }; var incCurrEuro = new[] { "Euro (€)", "Euro" }; var incCurrPound = new[] { "Pounds Sterling (£)", "British Pounds" }; var incCurrAus = new[] { "Australian $", "A ($)", "Australian ($)" }; var incCurrZAR = new[] { "RSA Rand (R)", "RSA Rand", "Rand" }; var incCurrKHN = new[] { "Hong Kong ($)", "Hong Kong $", "HK $" }; var incCurrNZL = new[] { "New Zealand ($)", "New Zealand $", "NZ $" };
当前判断并赋值的代码逻辑如下:
if (rCurrency == ""){ rCurrency = incCurrAus.Any(x => exRowCurrent.Contains(x)) ? "Australian ($)" : ""; rCurrencyUnit = incCurrAus.Any(x => exRowCurrent.Contains(x)) ? "AUD" : ""; }
提问
是否可以直接将exRowCurrent中匹配到的非标准化货币内容替换为对应的标准化版本?
内容的提问来源于stack exchange,提问作者Danie Schoeman
相关产品推荐
相关产品推荐

