【发布时间】:2016-10-11 14:03:52
【问题描述】:
大多数时候我只使用foreach 语句,因为这对我来说更容易编写代码。
稍后,当我的代码完成后,我将 foreach 转换为有意义的 LINQ 语句。
我想学习如何编写可读性好的 LINQ 语句。
你们如何将这个 foreach 代码转换为正确的 LINQ 语句?
private List<QARoles> GetUserRoles(User user)
{
//TODO: Fix this with LINQ intersect.
var result = new List<QARoles>();
foreach (var role in user.Roles)
{
foreach (QARoles qarole in System.Enum.GetValues(typeof(QARoles)))
{
if (role.Name.Equals(qarole.ToString()))
{
result.Add(qarole);
}
}
}
return result;
}
【问题讨论】:
-
您是否首先尝试将其转换为一些 linq?
-
我用过 resharper,就像 Malte R 提到的一样。但我不喜欢这个结果。我不认为它读起来很好。
-
如您所见,查看所有这些答案:最好的答案不是由 resharper 生成的。编写体面的可读 LINQ 语句需要高超的技能。
-
我完全同意 :) 作为一个问题,这是一个有价值的问题 - 我唯一的一点是,请在摆姿势时展示你尝试过的东西。我们可以从那里帮助你:)