c# - 如何将 foreach 循环转换为 linq

标签 c# linq c#-4.0 if-statement foreach

代码:

           foreach (var item in testItems.Distinct())
            {
                if (!testMap.ContainsKey(item.GetId()))
                {
                    testMap.Add(item.GetId(), item);
                }
            }

如何将上述代码的foreach循环转换为linq?谢谢。

最佳答案

有时“将 {x} 转换为 LINQ”的正确方法是:不要。它不是适合所有工作的工具。您当前使用 foreach 和字典突变的代码没有问题。保留它。

如果重复的 ID(在 Distinct() 之后)不是问题,您或许可以这样做:

var map = testItems.Distinct().ToDictionary(x => x.GetId());

但仅此而已。

关于c# - 如何将 foreach 循环转换为 linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21829000/

相关文章:

c# - 我如何等待 Quartz.Net 父作业中的子作业完成

c# - Uno平台解决方案中的"Empty path not legal'

c# - LINQ to Entities 无法识别方法 'Int32 ToInt32(Boolean)'

c# - 检查一个列表是否按顺序包含另一个列表中的所有项目

c# - 延迟后屏幕抓取网页

c# - 删除给定索引号以外的所有元素

c# - asp.net mvc 2.0如何让页面自动使用https

c# - 如何在查询 C# 中使用 Linq 和 Dictionary 从 List<> 获取元素?

xml - 如何在 Visual Studio 2010 中比较两个 XML 文件

c#-4.0 - C# 控制台应用程序中的正确文件路径