带有替换功能的 LINQ ForEach

mar*_*sey 0 linq

我试图用 LINQ 中的空字符串替换字符串日期值“01/01/1700”。

日期是字符串类型。

像这样的东西,但我无法让它工作。

Query<Client>(sql).ToList().ForEach(x => x.DateOfBirth =
    x.DateOfBirth.Replace("01/01/1700", ""));
Run Code Online (Sandbox Code Playgroud)

这段代码可以工作,但它不是 LINQ。

        var result = Query<Client>(sql).ToList();
        foreach (var client in result)
        {
            if (client.DateOfBirth == "01/01/1700")
            {
                client.DateOfBirth = "n/a";
            }
        }
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助。

Mar*_*tus 5

问题是ToList(). 结果在您之后使用的变量中不可见。

尝试以下操作:

var list = Query<Client>(sql).ToList();
list.ForEach(l => l.DateOfBirth = l.DateOfBirth.Replace("01/01/1700", "n/a"));
Run Code Online (Sandbox Code Playgroud)

应该可以正常工作。list之后使用该变量。