0 c#
foreach (IndexingField field in document.IndexingFields)
{
if (field.TableColumn.ToLower() == "esig"&& field.Data != null && !string.IsNullOrEmpty(field.Data.ToString()) && field.Data.ToString() != "N")
{
EsigBase64Value = field.Data.ToString();
field.Data = "Y";
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的每个循环,我想将每个循环的这个转换为 lambda 表达式,请帮助我
循环和 lambda 表达式是具有不同目的的不同事物。没有与此意图直接相关的 lambda 表达式,并且像常规 LINQ 方法Select旨在执行投影(创建新数据),而不是突变(更改现有数据)。
简而言之:不要管代码 - 原样没问题。我的主要观察EsigBase64Value是当有零个或多个记录与if测试匹配时,的值是什么。您可能还想提升field.Data.ToString()值,因此它只发生一次:
var data = field.Data.ToString();
if (...)
{
}
Run Code Online (Sandbox Code Playgroud)
(data在每个field.Data.ToString()出现的地方使用)
并且可能使用不区分大小写的重载string.Equals而不是field.TableColumn.ToLower() == "esig"