如何使用linq简化多个foreach

时间:2018-03-09 12:30:30

标签: c# linq

这里我提供了我的示例c#代码。

foreach (var table in dataSet.Tables)
        {
            foreach (var field in table.Fields)
            {
                if (displayText.Contains(field.Name))
                {
                    displayText = displayText.Replace(field.Name, field.Id);
                }
            }
        }

有人可以建议我如何使用linq简单地使用这段代码吗?

1 个答案:

答案 0 :(得分:1)

可以在一行上(即使它添加了额外的列表分配,但可以通过使用单个foreach语句而不是ToList()来避免.ForEach()):

dataset.Tables
       .SelectMany(table => table.Fields)
       .Where(field => displayText.Contains(field.Name))
       .ToList()
       .ForEach(field => displayText = displayText.Replace(field.Name, field.Id););