c# – 声明2个类似的匿名对象
发布时间:2020-12-15 22:19:29 所属栏目:百科 来源:网络整理
导读:下面是2个匿名对象的声明.第二个是第一个完全相同的副本,除了里面没有lastRefresh元素. 有没有办法声明这两个对象而不重复完全相同的部分? var routeValuesForAutoRefresh = new{ page = @ViewBag.nextPage,lastRefresh = @ViewBag.lastRefresh,searchTerm
下面是2个匿名对象的声明.第二个是第一个完全相同的副本,除了里面没有lastRefresh元素.
有没有办法声明这两个对象而不重复完全相同的部分? var routeValuesForAutoRefresh = new { page = @ViewBag.nextPage,lastRefresh = @ViewBag.lastRefresh,searchTerm = Request["searchTerm"],searchColumn = Request["searchColumn"],searchOrder = Request["searchOrder"],searchDescending = (Request["searchDescending"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus0 = (Request["requestStatus0"] ?? "false").ToLower().IndexOf("true") > -1,requestStatus1 = (Request["requestStatus1"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus3 = (Request["requestStatus3"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus5 = (Request["requestStatus5"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus7 = (Request["requestStatus7"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 }; var routeValuesForNextPage = new { page = @ViewBag.nextPage,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 }; 解决方法
它没有语法,但你有几个不错的解决方法:
>使您的类命名,并从另一个派生一个(或从公共基础派生) 我更喜欢第一种方法,但另外两种方法是改进. 以下是第二种方法的示例: var routeValuesForNextPage = new { page = @ViewBag.nextPage,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 }; var routeValuesForAutoRefresh = new { routeValuesForNextPage,lastRefresh = @ViewBag.lastRefresh }; 以下是第三种方法的示例: var page = @ViewBag.nextPage; var searchTerm = Request["searchTerm"]; var searchColumn = Request["searchColumn"]; var searchOrder = Request["searchOrder"]; var searchDescending = (Request["searchDescending"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus0 = (Request["requestStatus0"] ?? "false").ToLower().IndexOf("true") > -1; var requestStatus1 = (Request["requestStatus1"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus3 = (Request["requestStatus3"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus5 = (Request["requestStatus5"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus7 = (Request["requestStatus7"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1; var routeValuesForAutoRefresh = new { page,searchTerm,searchColumn,searchOrder,searchDescending,requestStatus0,requestStatus1,requestStatus3,requestStatus5,requestStatus7,requestStatus9 }; var routeValuesForNextPage = new { page,requestStatus9 }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |