如何创建一个程序,从一个数字池中获取一个随机数,并将其添加到C#中的总数中?

如何创建一个程序,从一个数字池中获取一个随机数,并将其添加到C#中的总数中?,c#,visual-studio,integer,C#,Visual Studio,Integer,我知道如何用C#创建一个随机数生成器,这不是我想要做的。我想做的是创建一个程序,从现有的数字列表中提取数字,输出这些数字,并将其添加到总数中 var number=新列表(); 增加(50); 增加(100); 增加(150); 例如,此列表中的数字。当运行程序的人输入R时,它将输出这3个数字中的一个,假设它输出50。总输出将是50,然后用户可以再次运行它,假设它在当时输出150。总数将增加到200。这里有一个解决方案,以防您只需要为一次应用程序运行添加它们: 如果您需要为将来的其他运行存储值

我知道如何用C#创建一个随机数生成器,这不是我想要做的。我想做的是创建一个程序,从现有的数字列表中提取数字,输出这些数字,并将其添加到总数中

var number=新列表();
增加(50);
增加(100);
增加(150);

例如,此列表中的数字。当运行程序的人输入R时,它将输出这3个数字中的一个,假设它输出50。总输出将是50,然后用户可以再次运行它,假设它在当时输出150。总数将增加到200。

这里有一个解决方案,以防您只需要为一次应用程序运行添加它们:
如果您需要为将来的其他运行存储值,请告诉我&我将编辑我的答案。(在这种情况下,您需要一个数据库或外部文本文件来存储数据)

List-PossibleNumbers=new-List()
{
10,
50,
23,
45,
100
};
随机rnd=新随机();
列表随机数=新列表();
public int GetRandomFromList()
{
返回PossibleNumbers[rnd.Next(0,PossibleNumbers.Count)];
}
公共新闻
{
//得到号码
var random=GetRandomFromList();
随机数。添加(随机);
//添加数字
整数和=0;
foreach(随机数中的变量数)
{
总和+=数字;
}
回报金额;
}

如果您只需要为一次应用程序运行添加它们,这里有一个解决方案:
如果您需要为将来的其他运行存储值,请告诉我&我将编辑我的答案。(在这种情况下,您需要一个数据库或外部文本文件来存储数据)

List-PossibleNumbers=new-List()
{
10,
50,
23,
45,
100
};
随机rnd=新随机();
列表随机数=新列表();
public int GetRandomFromList()
{
返回PossibleNumbers[rnd.Next(0,PossibleNumbers.Count)];
}
公共新闻
{
//得到号码
var random=GetRandomFromList();
随机数。添加(随机);
//添加数字
整数和=0;
foreach(随机数中的变量数)
{
总和+=数字;
}
回报金额;
}

如果您只是想从列表中选择随机数,您应该看到@Adrian Efford答案。如果您想要列表中的非重复数字,您可以


您可以通过在shuffle方法中添加一个参数来进一步扩展解决方案,该参数在
N
项之后停止shuffle。

如果您只是想从列表中获取随机数,您应该看到@Adrian Efford answer。如果您想要列表中的非重复数字,您可以


您可以通过在shuffle方法中添加一个参数来进一步扩展该解决方案,该参数在
N
项之后停止shuffle。

因此,在两次运行之间,总数是累积的?然后,您需要将数据存储在某个地方—可能在应用程序旁边的文件中,或者在数据库中,或者在多个冗余数据中心的群集云容器中(嘿,我们不知道您的规模!);也;返回50是否将其从池中移除?如果是这样的话,这些信息也需要存储。到目前为止,您做了哪些尝试?我想你至少有一些口头描述的步骤,你必须做,对吗?那么你具体被困在哪里?你能重复使用一个数字吗?那么总数是在两次跑步之间累积的吗?然后,您需要将数据存储在某个地方—可能在应用程序旁边的文件中,或者在数据库中,或者在多个冗余数据中心的群集云容器中(嘿,我们不知道您的规模!);也;返回50是否将其从池中移除?如果是这样的话,这些信息也需要存储。到目前为止,您做了哪些尝试?我想你至少有一些口头描述的步骤,你必须做,对吗?那么你具体被困在哪里?你能重复使用一个数字吗?@himbrombeer是真的。编辑@这是真的。编辑!回答得好!谢谢你回答得好!非常感谢。
List<int> PossibleNumbers = new List<int>()
    {
        10,
        50,
        23,
        45,
        100
    };
    Random rnd = new Random();
    List<int> randomNumbers = new List<int>();
    public int GetRandomFromList()
    {
        return PossibleNumbers[rnd.Next(0, PossibleNumbers.Count)];
    }

    public int NewSum()
    {
        //Get number
        var random = GetRandomFromList();
        randomNumbers.Add(random);
        //Add numbers
        int sum = 0;
        foreach (var number in randomNumbers)
        {
            sum += number;
        }

        return sum;
    }
public static void Shuffle<T>(this IList<T> list, Random rnd)
{
    for(var i=list.Count; i > 0; i--)
        list.Swap(0, rnd.Next(0, i));
}

public static void Swap<T>(this IList<T> list, int i, int j)
{
    var temp = list[i];
    list[i] = list[j];
    list[j] = temp;
}
Shuffle(MyList, rnd);
MyList.Take(10).Sum();