Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# p> 第一个错误是您没有在递归调用中传递featuredStories 第二个错误是int[](是Array的快捷方式)没有Add方法,您还将featuredStories定义为页面顶部的列表_C#_Arrays_Razor - Fatal编程技术网

C# p> 第一个错误是您没有在递归调用中传递featuredStories 第二个错误是int[](是Array的快捷方式)没有Add方法,您还将featuredStories定义为页面顶部的列表

C# p> 第一个错误是您没有在递归调用中传递featuredStories 第二个错误是int[](是Array的快捷方式)没有Add方法,您还将featuredStories定义为页面顶部的列表,c#,arrays,razor,C#,Arrays,Razor,因此,要解决这些问题,请将方法更改为: @functions { public int getRandomNumber(int min, int max, Random rnd, List<int> featuredStories) { int randomNumber = rnd.Next(min, max); if (featuredStories.Contains(randomNumber)) { randomNumber

因此,要解决这些问题,请将方法更改为:

@functions {
    public int getRandomNumber(int min, int max, Random rnd, List<int> featuredStories) {

    int randomNumber = rnd.Next(min, max);

    if (featuredStories.Contains(randomNumber)) 
    {
        randomNumber = getRandomNumber(min, max, rnd, featuredStories); 
    }
    else
    {
        featuredStories.Add(randomNumber);
    }


    return randomNumber;
}
@函数{
公共整数getRandomNumber(整数最小值、整数最大值、随机rnd、列表特征轨迹){
int randomNumber=rnd.Next(最小值、最大值);
if(要素目录包含(随机数))
{
randomNumber=getRandomNumber(最小值、最大值、rnd、特征点);
}
其他的
{
添加(随机数);
}
返回随机数;
}


微软做过的最糟糕的事情(是的)Razor中的是allow函数。Razor是一种视图绑定语言,它不应该包含逻辑。将逻辑移到控制器中并构建一个视图模型。这样您就不会有这个问题,并且您的代码可以更好地分离关注点。@Liam您能解释一下,将代码移到控制器中如何消除这个问题吗?另外,ASPX也非常有用而不是Razor函数。你会得到一个编译错误,告诉你问题是什么。我的主要例外是MVC是一个被微软劫持的设计模式。视图不应该包含逻辑,函数就是逻辑。设计模式说这是错误的。Tl'Dr遵循MVC的实际规则,你的代码将更容易理解/维护你会得到更少的错误,这是微软做过的最糟糕的事情(是的)Razor中的是allow函数。Razor是一种视图绑定语言,它不应该包含逻辑。将逻辑移到控制器中并构建一个视图模型。这样您就不会有这个问题,并且您的代码可以更好地分离关注点。@Liam您能解释一下,将代码移到控制器中如何消除这个问题吗?另外,ASPX也非常有用而不是Razor函数。你会得到一个编译错误,告诉你问题是什么。我的主要例外是MVC是一个被微软劫持的设计模式。视图不应该包含逻辑,函数就是逻辑。设计模式说这是错误的。Tl'Dr遵循MVC的实际规则,你的代码将更容易理解/维护你会得到更少的错误,如果这是在控制器中,它就不会被编译,你也不会有这个问题。伙计们,我强调我不是一个C#开发者。我是一个FE开发者,试图使用C#CMS。温柔点。我已经将featuredStories重命名为SelectedNumber,这样它与随机数生成更密切相关。我添加了4函数调用的第个参数,因此感谢该指针。我现在收到一个错误“Razor syntax error.”System.Array“”不包含“Add”的定义,并且找不到接受“System.Array”类型的第一个参数的扩展方法“Add”。如何在C#中向数组添加项。我的第一次尝试遵循了以下帖子t:不可以;在c#中,数组在声明时是固定长度的,并且不向数组中添加新元素。只能将数组中现有插槽的值设置为某个值。如果要添加(),请尝试将函数参数设置为
int[]
a
列表
instead@JamesHowell这是因为
Add
是一种
List
的方法,而不是
Array
。将
getRandomNumber
更改为…
List selectedNumbers
,如果这是在控制器中,它就不会被编译,你也不会有这个问题。伙计们,我强调过我不是C开发者。我是尝试使用C#CMS的FE开发者。请温柔。我已将featuredStories重命名为selectedNumbers,以便它与随机数生成更密切相关。我已将第4个参数添加到函数调用中,因此感谢该指针。我现在收到一个错误“Razor syntax error”。“System.Array”不包含“Add”的定义'并且找不到接受类型为'System.Array'的第一个参数的扩展方法'Add'。如何在C#中向数组添加项。我的第一次尝试遵循了以下帖子:不可以;在C#中,数组在声明时是固定长度的,并且不向其添加新元素。只能设置数组中现有插槽的值,如果要添加(),请尝试将函数参数设置为
int[]
a
列表
instead@JamesHowell这是因为
Add
是一种
List
的方法,而不是
Array
。将
getRandomNumber
更改为….
List selectedNumbers
谢谢Camilo。一旦你指出数组不能添加额外的项,我就已经将类型更改为List了。一切正在工作。再次感谢。@JamesHowell数组可以有额外的项,但没有简单的方法(在安装时定义长度)。当您确实知道长度时,请使用数组,当您不知道时,请使用列表。谢谢Camilo。一旦您指出数组不能添加额外的项目,我已经将类型更改为列表。现在一切正常。再次感谢。@JamesHowell数组可以添加额外的项目,但没有简单的方法(在安装时定义长度).当您知道长度时,请使用数组;当您不知道长度时,请使用列表
public int getRandomNumber(int min, int max, Random rnd, int[] featuredStories) {
randomNumber = getRandomNumber(min, max, rnd);
//get a random story from the known ones, but include a chance that a new random number can become a story
//generate a random number
//if it's in the known list, just return it
//if not in the list, add it and return it
//return the first occurrence of a repeated int 
a=>{for(int p=0,q=0;;q++)while(p++<q)if(a[q]==a[p])return a[q];}
@functions {
    public int getRandomNumber(int min, int max, Random rnd, (2) int[] featuredStories) {

    int randomNumber = rnd.Next(min, max);

    if (featuredStories.Contains(randomNumber)){
        randomNumber = getRandomNumber(min, max, rnd); (1)
    }else{
        featuredStories.Add(randomNumber);
    }


    return randomNumber;
}
@functions {
    public int getRandomNumber(int min, int max, Random rnd, List<int> featuredStories) {

    int randomNumber = rnd.Next(min, max);

    if (featuredStories.Contains(randomNumber)) 
    {
        randomNumber = getRandomNumber(min, max, rnd, featuredStories); 
    }
    else
    {
        featuredStories.Add(randomNumber);
    }


    return randomNumber;
}