gpt4 book ai didi

c# - LINQ lambda 表达式替换字符串中的多个字符?

转载 作者:行者123 更新时间:2023-11-30 13:20:55 27 4
gpt4 key购买 nike

是否可以编写一个 lambda 表达式来遍历对象数组并替换其中一个属性中所有出现的“X”、“Y”、“”和“Z”?

例如

return query.Select(x => { x.SomePropertyName= x.SomePropertyName.Trim().Replace(' ', "_"); return x; }).ToList();

出于某种原因,当我需要替换多个字符时,上面的查询不会替换单个字符。

谢谢

最佳答案

当我想用一个单独的其他字符替换多个字符中的一个时,我经常使用 string.Split 和 string.Join 的组合:

char[] unwanted = new[] {'X', 'Y', 'Z'};
query = query.Select(x =>
{
x.SomePropertyName = string.Join("_", x.SomePropertyName.Split(unwanted));
return x;
});

这会将所有出现的 'X''Y''Z' 替换为 '_'。您可以将它与您选择的循环结构结合起来。

如评论中所述,在这种情况下使用 Select 并没有真正增加任何值(value)。一个普通的 foreach 循环就可以完成这项工作,甚至会产生更紧凑的代码:

char[] unwanted = new[] {'X', 'Y', 'Z'};
foreach(var x in query)
{
x.SomePropertyName = string.Join("_", x.SomePropertyName.Split(unwanted));
};

关于c# - LINQ lambda 表达式替换字符串中的多个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com