C# 公共静态IEnumerable<;int>;方法

C# 公共静态IEnumerable<;int>;方法,c#,syntax,ienumerable,C#,Syntax,Ienumerable,我正在尝试调用该函数,但无法调用。有没有具体的方法来调用IEnumerable方法 这就是函数 public static IEnumerable<int> UpTo(this int minValue, int maxValue) { return maxValue < minValue ? Enumerable.Empty<int>() : Enumerable.Range(minValue, maxValue - minValue + 1); }

我正在尝试调用该函数,但无法调用。有没有具体的方法来调用IEnumerable方法

这就是函数

public static IEnumerable<int> UpTo(this int minValue, int maxValue)
{
    return  maxValue < minValue ? Enumerable.Empty<int>() : Enumerable.Range(minValue, maxValue - minValue + 1);
}
公共静态IEnumerable最多(此int-minValue,int-maxValue)
{
返回maxValue
我试着像这样调用函数

var newContainer = new List<int>();
newContainer.Add(1);
newContainer.Add(2);
newContainer.Add(3);
newContainer.Add(4);

var formattedContainer = newContainer.UpTo(10);
var newContainer=newlist();
新容器。添加(1);
新容器。添加(2);
新容器。添加(3);
新容器。添加(4);
var formattedContainer=newContainer.UpTo(10);

功能应为:

public static IEnumerable<int> UpTo(this Enumerable<int>, int minValue, int maxValue)
{
    return  maxValue < minValue ? Enumerable.Empty<int>() : Enumerable.Range(minValue, maxValue - minValue + 1);
}
公共静态IEnumerable最多(此可枚举,int-minValue,int-maxValue)
{
返回maxValue
功能应为:

public static IEnumerable<int> UpTo(this Enumerable<int>, int minValue, int maxValue)
{
    return  maxValue < minValue ? Enumerable.Empty<int>() : Enumerable.Range(minValue, maxValue - minValue + 1);
}
公共静态IEnumerable最多(此可枚举,int-minValue,int-maxValue)
{
返回maxValue
您有一个简单的参数不匹配:您的扩展方法将
int
声明为
-参数,而您尝试将其应用于
列表
您有一个简单的参数不匹配:您的扩展方法将
int
声明为
-参数,如果要创建新的枚举(如Enumerable.Range),请尝试将其应用于
列表,但不要使用此参数,也不要在列表中调用它,请使其与Enumerable.Range一样工作
MyClassName.UpTo(2,3)
是有道理的,但我不明白你所说的
newContainer.UpTo(10)是什么意思。后一个调用相当于
MyClassname.UpTo(newContainer,10)
,第一个参数不是数字。

如果要创建新的枚举,如Enumerable.Range,则不要使用此参数,也不要在列表中调用它,使其与Enumerable.Range一样工作
MyClassName.UpTo(2,3)
是有道理的,但我不明白你所说的
newContainer.UpTo(10)是什么意思。后一个调用相当于
MyClassname.UpTo(newContainer,10)
,第一个参数不是数字。

这不起作用,因为您扩展了
int
,但您正在
列表上使用它。如果要使用一种方法将
int
扩展到
,该方法创建一个从该数字到上限
maxValue
的序列:

public static IEnumerable<int> UpTo(this int minValue, int maxValue)
{
    if (maxValue > minValue)
        return Enumerable.Range(minValue, maxValue - minValue + 1);
    else
        return Enumerable.Empty<int>();
}
其中输出:
4,5,6,7,8,9,10


如果要扩展
列表
,则需要将其作为带有
关键字的第一个参数

public static void AddUpTo(this List<int> list, int minValue, int maxValue)
{
    if (maxValue > minValue)
    {
        list.AddRange(Enumerable.Range(minValue, maxValue - minValue));
    }
}
publicstaticvoidaddupto(这个列表,int-minValue,int-maxValue)
{
如果(最大值>最小值)
{
AddRange(Enumerable.Range(minValue,maxValue-minValue));
}
}
或者,如果要允许效率较低的
IEnumerable

public static IEnumerable<int> UpTo(this IEnumerable<int> sequence, int minValue, int maxValue)
{
    if (maxValue > minValue)
        return sequence.Concat(Enumerable.Range(minValue, maxValue - minValue));
    else
        return sequence;
}
公共静态IEnumerable最多(此IEnumerable序列,int-minValue,int-maxValue)
{
如果(最大值>最小值)
返回序列.Concat(可枚举的.Range(minValue,maxValue-minValue));
其他的
返回序列;
}

这不起作用,因为您扩展了
int
,但您正在
列表中使用它。如果要使用一种方法将
int
扩展到
,该方法创建一个从该数字到上限
maxValue
的序列:

public static IEnumerable<int> UpTo(this int minValue, int maxValue)
{
    if (maxValue > minValue)
        return Enumerable.Range(minValue, maxValue - minValue + 1);
    else
        return Enumerable.Empty<int>();
}
其中输出:
4,5,6,7,8,9,10


如果要扩展
列表
,则需要将其作为带有
关键字的第一个参数

public static void AddUpTo(this List<int> list, int minValue, int maxValue)
{
    if (maxValue > minValue)
    {
        list.AddRange(Enumerable.Range(minValue, maxValue - minValue));
    }
}
publicstaticvoidaddupto(这个列表,int-minValue,int-maxValue)
{
如果(最大值>最小值)
{
AddRange(Enumerable.Range(minValue,maxValue-minValue));
}
}
或者,如果要允许效率较低的
IEnumerable

public static IEnumerable<int> UpTo(this IEnumerable<int> sequence, int minValue, int maxValue)
{
    if (maxValue > minValue)
        return sequence.Concat(Enumerable.Range(minValue, maxValue - minValue));
    else
        return sequence;
}
公共静态IEnumerable最多(此IEnumerable序列,int-minValue,int-maxValue)
{
如果(最大值>最小值)
返回序列.Concat(可枚举的.Range(minValue,maxValue-minValue));
其他的
返回序列;
}

您想做什么?修改现有枚举或创建一个新枚举?创建一个新枚举,调用该方法。您想做什么?修改现有枚举还是创建一个新枚举?创建一个新枚举,调用该方法。我缺少参数名称。完整性:它应该放在静态类中,即使它有名称,也不会使用,所以它没有意义。我缺少参数名。为了完整性:它应该放在一个静态类中,即使它有一个名称,它也没有被使用,所以它没有意义。我不想修改这个函数,我只是不知道为什么我不能调用它。@Rubenex:我已经相应地编辑了它。我不想修改这个函数,我只是不知道为什么我不能叫它。@Rubenex:我已经相应地编辑了它。