C# 生成带有随机数的列表。排序和总和

C# 生成带有随机数的列表。排序和总和,c#,C#,我是编程新手,如果有人能帮我解决以下问题,我将非常高兴。 我有两种方法的问题。 首先将列表中的所有50个随机数相加,然后用50个随机数对列表进行排序。 例如,当一个列表有四个数字{1,2,3,8},但没有50个随机数时,我知道如何做到这一点 在这两个方法中使用构造函数会很好,但我现在不知道怎么做 任何帮助都将不胜感激 class Class1 { var rand = new Random(); public Class1( ) // how to use a constructor

我是编程新手,如果有人能帮我解决以下问题,我将非常高兴。 我有两种方法的问题。 首先将列表中的所有50个随机数相加,然后用50个随机数对列表进行排序。 例如,当一个列表有四个数字{1,2,3,8},但没有50个随机数时,我知道如何做到这一点

在这两个方法中使用构造函数会很好,但我现在不知道怎么做

任何帮助都将不胜感激

class Class1
{
  var rand = new Random();

  public Class1( ) //  how to use a constructor ?


    public static List<double> TotalSum()
    {

        var alist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            alist.Add(rand.Next(10));
        }
        Console.WriteLine("Total sum:", alist);
    }

    public static List<double> Sort()
    {
        var slist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            slist.Sort(rand.Next(10));   // rand.Next does not work with Sort
            Console.WriteLine(slist);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            Class1 show = new Class1(); 
            show.TotalSum();
            show.Sort();
        }
    }
}
Class1类
{
var rand=new Random();
public Class1()//如何使用构造函数?
公共静态列表总和()
{
var alist=新列表();
对于(int i=0;i<50;i++)
{
列表添加(兰特下一步(10));
}
Console.WriteLine(“总额:”,列表);
}
公共静态列表排序()
{
var slist=新列表();
对于(int i=0;i<50;i++)
{
slist.Sort(rand.Next(10));//rand.Next与Sort不兼容
控制台写入线(slist);
}
}
班级计划
{
静态void Main(字符串[]参数)
{
Class1 show=新的Class1();
show.TotalSum();
show.Sort();
}
}
}
只需使用这两种方法

我建议您使用rand.Next(Environment.TickCount)来获得更好的随机数,但最后需要使用不同的原语值来存储结果

class Program
{
    static void Main(string[] args)
    {
        var array = Class1.Sort();
        PrintArray(array);

        Console.WriteLine();

        Console.WriteLine("Total sum: {0}", Class1.TotalSum());

        Console.ReadLine();
    }

    static void PrintArray(List<double> array)
    {
        foreach (var a in array)
            Console.WriteLine(a);
    }
}

public class Class1
{

    public static double TotalSum()
    {
        var rand = new Random();

        var alist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            alist.Add(rand.Next(10));
        }

        return alist.Sum();
    }

    public static List<double> Sort()
    {
        var rand = new Random();

        var slist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            slist.Add(rand.Next(10)); // rand.Next does not work with Sort
        }

        slist.Sort();

        return slist;
    }
}
类程序
{
静态void Main(字符串[]参数)
{
var数组=Class1.Sort();
打印阵列(数组);
Console.WriteLine();
WriteLine(“总和:{0}”,Class1.TotalSum());
Console.ReadLine();
}
静态void打印数组(列表数组)
{
foreach(数组中的变量a)
控制台写入线(a);
}
}
公共班级1
{
公共静态双总和()
{
var rand=new Random();
var alist=新列表();
对于(int i=0;i<50;i++)
{
列表添加(兰特下一步(10));
}
返回alist.Sum();
}
公共静态列表排序()
{
var rand=new Random();
var slist=新列表();
对于(int i=0;i<50;i++)
{
slist.Add(rand.Next(10));//rand.Next与Sort不兼容
}
slist.Sort();
回程滑脱;
}
}
只需使用这两种方法

我建议您使用rand.Next(Environment.TickCount)来获得更好的随机数,但最后需要使用不同的原语值来存储结果

class Program
{
    static void Main(string[] args)
    {
        var array = Class1.Sort();
        PrintArray(array);

        Console.WriteLine();

        Console.WriteLine("Total sum: {0}", Class1.TotalSum());

        Console.ReadLine();
    }

    static void PrintArray(List<double> array)
    {
        foreach (var a in array)
            Console.WriteLine(a);
    }
}

public class Class1
{

    public static double TotalSum()
    {
        var rand = new Random();

        var alist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            alist.Add(rand.Next(10));
        }

        return alist.Sum();
    }

    public static List<double> Sort()
    {
        var rand = new Random();

        var slist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            slist.Add(rand.Next(10)); // rand.Next does not work with Sort
        }

        slist.Sort();

        return slist;
    }
}
类程序
{
静态void Main(字符串[]参数)
{
var数组=Class1.Sort();
打印阵列(数组);
Console.WriteLine();
WriteLine(“总和:{0}”,Class1.TotalSum());
Console.ReadLine();
}
静态void打印数组(列表数组)
{
foreach(数组中的变量a)
控制台写入线(a);
}
}
公共班级1
{
公共静态双总和()
{
var rand=new Random();
var alist=新列表();
对于(int i=0;i<50;i++)
{
列表添加(兰特下一步(10));
}
返回alist.Sum();
}
公共静态列表排序()
{
var rand=new Random();
var slist=新列表();
对于(int i=0;i<50;i++)
{
slist.Add(rand.Next(10));//rand.Next与Sort不兼容
}
slist.Sort();
回程滑脱;
}
}

我想我明白你的意思了。您需要一个包含随机数字列表的类,并且需要一些函数

最好给你的班级起个更合适的名字。比如“随机列表”就好了

您不能使用
Console.WriteLine(列表)
打印列表项。您必须遍历项目,并以您想要的方式打印它们

不能使用
var
定义字段。您必须显式地编写类型

static
换句话说,关键字是所有实例的
one
。因此,如果不使用static,则每个实例将
一个。实例就是您使用构造函数创建的对象。最好将随机数生成器声明为静态,但其他方法和列表字段应保持非静态

使用Linq
Sum()
可以从列表中获取所有项的总和。如果您不想使用Linq,那么您必须遍历列表并将每个项添加到value
sum

我对代码进行了注释以解释问题

class Program
{
    static void Main(string[] args)
    {
        RandomList show = new RandomList(50, 10);
        show.TotalSum();
        show.Sort();
    }
}
class RandomList
{
    private static Random rand = new Random();

    private List<double> _list; // this field holds your list

    public RandomList(int length , int maxValuePerItem) // this is the constructor
    {
        _list = new List<double>(); 

        // populate list
        for (int i = 0; i < length; i++)
        {
            _list.Add(rand.Next(maxValuePerItem)); 
        }
    }

    public void TotalSum()
    {
        Console.WriteLine("Total sum: {0}", _list.Sum()); // {0} is required to specify the place to put _list.Sum() inside string.


        // without linq way
        // int sum = 0;
        // foreach(var i in _list) sum += i;
    }

    public void Sort()
    {
        _list.Sort();

        foreach (var d in _list) 
        {
            Console.Write(d + " , "); // you need to print this in the way you want.
        }
    }
}
类程序
{
静态void Main(字符串[]参数)
{
随机列表显示=新的随机列表(50,10);
show.TotalSum();
show.Sort();
}
}
类随机列表
{
私有静态随机兰德=新随机();
private List _List;//此字段保存您的列表
public RandomList(int-length,int-maxValuePerItem)//这是构造函数
{
_列表=新列表();
//填充列表
for(int i=0;i
我想我明白你的意思了。您需要一个包含随机数字列表的类,并且需要一些函数

最好给你的班级起个更合适的名字。比如“随机列表”就好了

您不能使用
Console.WriteLine(列表)
打印列表项。您必须遍历项目,并以您想要的方式打印它们

class Class1
{
    var rand = new Random();
    var alist;

    public Class1() // constructor creates a new list and initializes it
    {
        alist = new List<double>();
        for (int i = 0; i < 50; i++)
        {
            alist.Add(rand.Next(10)); 
        }
    }


    public List<double> TotalSum()
    {
        Console.WriteLine("Total sum:", alist.Sum());
    }

    public List<double> Sort()
    {
        alist.Sort();   
        for (double num in alist)
        {
            Console.WriteLine(num.ToString());
        }

    }


    class Program
    {
        static void Main(string[] args)
        {
            Class1 show = new Class1();
            show.TotalSum();
            show.Sort();
        }
    }
}