Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 为什么我会收到错误消息;运算符不能应用于字符串和int“类型的操作数;?_C#_Asp.net_Visual Studio 2015 - Fatal编程技术网

C# 为什么我会收到错误消息;运算符不能应用于字符串和int“类型的操作数;?

C# 为什么我会收到错误消息;运算符不能应用于字符串和int“类型的操作数;?,c#,asp.net,visual-studio-2015,C#,Asp.net,Visual Studio 2015,我想创建一个分页系统,所以我为它创建了一个通用类,在这个类中,我想检索页面的值和url的大小参数,但它不起作用,我得到以下消息: 运算符不能应用于字符串和int类型的操作数 代码如下: // http://localhost:6289/api/Customer?page=3&size=3 public static IQueryable<T> Paginate<T>(this IQueryable<T> source) {

我想创建一个分页系统,所以我为它创建了一个通用类,在这个类中,我想检索页面的值和url的大小参数,但它不起作用,我得到以下消息:

运算符不能应用于字符串和int类型的操作数

代码如下:

    // http://localhost:6289/api/Customer?page=3&size=3

    public static IQueryable<T> Paginate<T>(this IQueryable<T> source)
    {
        var queryParams = HttpContext.Current.Request.QueryString;
        
        string page = queryParams.Get("page");
        var size = queryParams.Get("size");
     
        return source.Skip((page - 1) * size).Take(size);
    }
//http://localhost:6289/api/Customer?page=3&size=3
公共静态IQueryable分页(此IQueryable源)
{
var queryParams=HttpContext.Current.Request.QueryString;
string page=queryParams.Get(“page”);
var size=queryParams.Get(“size”);
返回源。跳过((第1页)*大小)。获取(大小);
}

您需要将字符串页面大小转换为int。尝试如下操作:

 string page = queryParams.Get("page");
 int p = int.Parse(page);
 int s = int.Parse(size);
 return source.Skip((p- 1) * s).Take(s);

您需要将get参数从字符串转换为整数

试试这个:

int page, size;
if (Int32.TryParse(queryParams.Get("page"),out page) && 
    Int32.TryParse(queryParams.Get("size"),out size)) {
        return source.Skip((page - 1) * size).Take(size);
} 
else {
    // return 404 of some such in case of non-integer input
}

page
是一个字符串,例外是告诉您不能从字符串中减去数字。在代码中开始访问HttpContext也是一个糟糕的主意。你最终会遇到一堆神奇的弦。调用API时读取它,然后传递参数around@DavidGpage是参数的名称,它是字符串?那么如何获取它的值
字符串page
。page是string@Liam“在代码中开始访问HttpContext也是一个糟糕的主意”我是初学者,你有什么建议?因为在我的代码中有webApi项目、ServiceLayer项目和DataLayer项目。如果我在控制器中传递函数内部的参数,我必须将它们传递给ServiceLayer,并从ServiceLayer传递给DataLayer。他们给了我这个概念