【问题标题】:Isn't there a better way of typing this? [closed]没有更好的打字方式吗? [关闭]
【发布时间】:2018-03-06 13:09:25
【问题描述】:

所以我基本上是在做一个 List 的 AddRange,我需要调用一个构造函数,而我正在做的事情似乎不直观。

这就是我正在做的:

List<Affix> FinalPrefixes = new List<Affix>(), 
            FinalSuffixes = new List<Affix>();
foreach (AffixGenerator TempGenerator in PossiblePrefixes)
    FinalPrefixes.Add(new Affix(TempGenerator));

foreach (AffixGenerator TempGenerator in PossibleSuffixes)
    FinalSuffixes.Add(new Affix(TempGenerator));

显然,一个函数会使这更简单,但我想知道是否有另一种方法来简化它(也许是 lambda)。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为这是一篇应该转到 review.stackexchange.com 的评论
  • 天哪,对不起。这是我第一次在这里发帖,我没有意识到我必须在别处发布我的问题。
  • 你真的在乎吗?您的代码非常简单易懂,不是吗?从我的角度来看,没有理由改变任何事情。
  • 你能解释为什么它看起来不直观吗?我同意使用选择查询表达式是一个不错的选择的建议,但是您的代码对我来说似乎非常简单。
  • 对我来说(意见)foreach 很好,虽然你没有关注naming guidelines(局部变量是骆驼)。 Linq 为初学者生产的单线有副作用,意味着更多的问题。

标签: c#


【解决方案1】:

您可以使用 LINQ:

var FinalPrefixes = PossiblePrefixes.Select(p => new Affix(p)).ToList();
var FinalSuffixes = PossibleSuffixes.Select(s => new Affix(s)).ToList();

【讨论】:

    【解决方案2】:

    使用 LINQ 的 Select...

    var FinalPrefixes = PossiblePrefixes.Select(x => new Affix(x)).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 2021-04-17
      • 2010-10-02
      • 2011-11-27
      • 1970-01-01
      • 2010-09-11
      相关资源
      最近更新 更多