【发布时间】:2012-02-20 13:04:32
【问题描述】:
为了用 1 到 n 的数字范围填充 List<int>,我可以使用:
for (i=1; i<=n; i++)
{
myList.Add(i);
}
有没有办法通过使用 LINQ 内联表达式来达到相同的结果?
更新
假设我有一个方法getMonthName(i),给定整数返回月份的名称。我可以使用 Enumerable 以某种方式直接用月份名称填充列表吗
【问题讨论】:
为了用 1 到 n 的数字范围填充 List<int>,我可以使用:
for (i=1; i<=n; i++)
{
myList.Add(i);
}
有没有办法通过使用 LINQ 内联表达式来达到相同的结果?
更新
假设我有一个方法getMonthName(i),给定整数返回月份的名称。我可以使用 Enumerable 以某种方式直接用月份名称填充列表吗
【问题讨论】:
Enumerable.Range(1,12).Select(getMonthName);
【讨论】:
你想使用Enumerable.Range。
myList.AddRange(Enumerable.Range(1, n));
或者
myList = Enumerable.Range(1, n).ToList();
如果您要问这种问题,您可能需要查看System.Linq.Enumerable 的方法。这就是保存所有这些东西的地方。不要错过ToLookup、Concat(对比Union)和Repeat。
【讨论】:
Enumerable 以某种方式直接用月份名称填充列表吗?
对于月份名称,您可以使用Select():
var months = Enumerable.Range(1,n).Select(getMonthName);
【讨论】: