【问题标题】:Populate a list with a specific range of numbers by using LINQ使用 LINQ 填充具有特定数字范围的列表
【发布时间】:2012-02-20 13:04:32
【问题描述】:

为了用 1 到 n 的数字范围填充 List<int>,我可以使用:

for (i=1; i<=n; i++)
{
   myList.Add(i);
}

有没有办法通过使用 LINQ 内联表达式来达到相同的结果?

更新

假设我有一个方法getMonthName(i),给定整数返回月份的名称。我可以使用 Enumerable 以某种方式直接用月份名称填充列表吗

【问题讨论】:

    标签: c# linq list range


    【解决方案1】:
    Enumerable.Range(1,12).Select(getMonthName);
    

    【讨论】:

    • + .ToList() 来计算表达式。
    【解决方案2】:

    你想使用Enumerable.Range

    myList.AddRange(Enumerable.Range(1, n));
    

    或者

    myList = Enumerable.Range(1, n).ToList();
    

    如果您要问这种问题,您可能需要查看System.Linq.Enumerable 的方法。这就是保存所有这些东西的地方。不要错过ToLookupConcat(对比Union)和Repeat

    【讨论】:

    • 谢谢!假设我有一个方法 getMonthName(i) 给定整数给出月份的名称。我可以使用 Enumerable 以某种方式直接用月份名称填充列表吗?
    • @CiccioMiami 通常,当您有第二个问题时 - 最好将其作为第二个问题提出。
    【解决方案3】:

    对于月份名称,您可以使用Select()

    var months = Enumerable.Range(1,n).Select(getMonthName);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      相关资源
      最近更新 更多