c# - 拆分、for 循环并替换为 lambda 表达式

标签 c# string for-loop lambda split

我有一个字符串 q.ACBValue,其中包含 "v1,v2,v4""v3,v5" 等实例。我想将以下代码转换为更简洁的 lambda 表达式

 string[] list = q.ACBValue.Split(',');

 for (int i = 0; i < list.Count(); i++)
 {
     q.ACBOption = q.ACBOption.Replace("value='"+ list[i] + "' ", "value='" + list[i] + "' checked=\"checked\""); 
 }

最佳答案

尝试这样的事情:

q.ACBValue.Split(',')
    .Select(s => new
    {
        Search = "value='" + s + "' ",
        Replace = "value='" + s + "' checked=\"checked\""
    })
    .ToList()
    ForEach(tuple => 
        qACBOption = q.ACBOption.Replace(tuple.Search, tuple.Replace));

此解决方案使用 ForEach List<T>的方法类(class)。为了使其可见,您必须通过显式调用扩展方法 ToList 将先前的序列转换为列表。 .

还有另一种方法,您可以使用Aggregate来聚合一路上的结果。扩展方法:

q.ACBOption =
    q.ACBValue.Split(',')
        .Select(s => new
        {
            Search = "value='" + s + "' ",
            Replace = "value='" + s + "' checked=\"checked\""
        })
        .Aggregate(
            q.ACBOption, 
            (res, tuple) => res.Replace(tuple.Search, tuple.Replace));

关于c# - 拆分、for 循环并替换为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085456/

相关文章:

c# - 使用 LINQ to XML 时避免暴露于 NullReferenceException

python - PYTHON 中的 for 循环 while 循环效率

java - 计算字符串中用户指定字符的出现次数

string - 在汇编中定义字符串常量的语法是什么?

python - 如何创建一个递归函数,生成多个 for 循环并计算总次数

javascript - 如何使用 jquerycropit 插件最小化请求的图像?

c# - VS 创建单元测试命令不适用于内部方法?

c# - 在 Winforms C# 中调试数据绑定(bind)?

c++ - 如何使用标准库函数通过错误检查将字符串 (char*) 转换为数字?

ruby-on-rails - 从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过 mb_chars.normalize 和 iconv)