在 .NET 中填充整数列表

发布于 2024-07-05 01:13:33 字数 332 浏览 8 评论 0原文

我需要一个从 1 到 x 的整数列表,其中 x 由用户设置。 我可以用 for 循环构建它,例如假设 x 是之前设置的整数:

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

这看起来很愚蠢,当然有一种更优雅的方法来做到这一点,比如 PHP 范围方法

I need a list of integers from 1 to x where x is set by the user. I could build it with a for loop eg assuming x is an integer set previously:

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

This seems dumb, surely there's a more elegant way to do this, something like the PHP range method

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

为你鎻心 2024-07-12 01:13:33

这是一个返回整数列表的简短方法。

    public static List<int> MakeSequence(int startingValue, int sequenceLength)
    {
        return Enumerable.Range(startingValue, sequenceLength).ToList<int>();
    }

Here is a short method that returns a List of integers.

    public static List<int> MakeSequence(int startingValue, int sequenceLength)
    {
        return Enumerable.Range(startingValue, sequenceLength).ToList<int>();
    }
碍人泪离人颜 2024-07-12 01:13:33

我是博客关于一个问题的人之一如果您使用 C#3.0,则可以编写 ruby​​ 式的 To 扩展方法:


public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)
{ yield return i; } } }

然后您可以像这样创建整数列表

List<int> = first.To(last).ToList();

List<int> = 1.To(x).ToList();

I'm one of many who has blogged about a ruby-esque To extension method that you can write if you're using C#3.0:


public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)
{ yield return i; } } }

Then you can create your list of integers like this

List<int> = first.To(last).ToList();

or

List<int> = 1.To(x).ToList();

(り薆情海 2024-07-12 01:13:33

LINQ 的救援:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

请参阅 生成运算符 “http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx”rel =“noreferrer”>LINQ 101

LINQ to the rescue:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

See Generation Operators on LINQ 101

思慕 2024-07-12 01:13:33

如果您使用的是 .Net 3.5,Enumerable.Range< /a> 是你所需要的。

生成积分序列
指定范围内的数字。

If you're using .Net 3.5, Enumerable.Range is what you need.

Generates a sequence of integral
numbers within a specified range.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文