如何改进这个排序代码? [关闭]

2024-01-08

我正在检查排序参数并构建一堆if声明:

if (sortDirection == "ASC")
{
    if (sortBy == "Id")
        return customerList.OrderBy(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
    if (sortBy == "FirstName")
        return customerList.OrderBy(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
    if (sortBy == "City")
        return customerList.OrderBy(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}
else
{
    if (sortBy == "Id")
        return customerList.OrderByDescending(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
    if (sortBy == "FirstName")
        return customerList.OrderByDescending(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
    if (sortBy == "City")
        return customerList.OrderByDescending(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}

我该如何改善?


将您的排序和查询的其余部分分开 - 每个查询的相同部分您不必在代码库中重复(保留它DRY http://en.wikipedia.org/wiki/Don%27t_repeat_yourself):

var query = customerList;

if (sortDirection == "ASC")
{
    if (sortBy == "Id")
       query = query.OrderBy(x => x.Id);
    ///and so on
}

query = query.Skip(startIndex).Take(pageSize).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何改进这个排序代码? [关闭] 的相关文章

  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • JetBrains Rider 针对 4.5 框架,无法切换到 4.7

    基本上 当尝试添加不支持旧框架的 NuGet 包时 会出现错误 但是在项目配置中只有 4 5 可用 在项目创建过程中 不存在选择目标的选项 有什么方法可以正确配置它吗 I haven t found out how to set up NE
  • 在异步请求中使用超时回调

    我之前问过这个问题 但我将用提出的解决方案来完成这个问题 并提出另一个问题 我正在使用这个类来进行异步网络请求 http msdn microsoft com en us library system net webrequest aspx
  • std::bind2nd 和 std::bind 与二维数组和结构数组

    我知道 C 有 lambda 并且 std bind1st std bind2nd 和 std bind 已弃用 然而 从C 的基础开始 我们可以更好地理解新特性 所以 我从这个非常简单的代码开始 使用int 数组s 第一个例子 与std
  • C语言中没有循环可以打印数组吗?

    例如 在Python中 如果我们将一个列表作为数组 它会直接用一行代码打印整个数组 有什么办法可以用C语言实现同样的事情吗 简短回答 No 对表格上几乎所有问题的简短回答 用 C 语言做 X 工作能像用 Python 一样简单吗 No 长答
  • 为什么 rand() 总是返回相同的值? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中生成随机数 https stackoverflow com questions 3067364 generating random numbers in c 使用 rand 生成随机数 http
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 重定向 std::cout

    我需要一个类 在其对象的生命周期内将一个 ostream 重定向到另一个 ostream 经过一番修补后 我想出了这个 include
  • 如果我重新分配并且新大小为 0,会发生什么情况。这与释放等效吗?

    给出以下代码 int a NULL a calloc 1 sizeof a printf d n a a realloc a 0 printf d n a return 0 它返回 4078904 0 这个 realloc 相当于 free
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 检测笔记本电脑盖子的关闭和打开

    是否可以检测笔记本电脑的盖子何时打开或关闭 从我读到的内容来看 这是不可能的 但 SO 之前已经帮助我完成了不可能的任务 我发现唯一可能朝着正确方向的事情是关于报告电源按钮所需的 IOCTL 的 MSDN 博客文章 https learn
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • 如何阻止 Control-I 在 CoreWindow 范围内的 UWP 文本框中插入选项卡?

    当我在 UWP 应用程序中有一个 TextBox 时 对我来说 奇怪的行为 在 Windows 10 中创建通用的空白应用程序 UWP 应用程序 使用以下代码将文本框添加到默认网格
  • 动态菜单创建IoC

    我想知道是否有人知道我如何创建如何使用 AutoFac 之类的东西来让我动态地允许 dll 创建自己的表单和菜单项以在运行时调用它们 所以如果我有一个 员工 dll 新入门表格 证书表格 供应商 dll 供应商详细信息来自 产品形态 在我的
  • 在 lua 中加载 C++ 模块时出现“尝试索引字符串值”错误

    我正在尝试使用 lua 用 C 编写的函数 下面给出的是cpp文件 extern C include lua h include lauxlib h include lualib h static int add 5 lua State L
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • 如何获取运行或段落的高度

    我找到了Run or Paragraph in FlowDocument现在我需要知道HEIGHT of it i e while navigator CompareTo flowDocViewer Document ContentEnd
  • 如何创建实体集或模型而不在数据库中创建相应的表 - 实体框架

    我的 sqlserver 数据库中有一个存储过程 它返回多个结果集 我正在使用 msdn 中的以下链接从实体框架中的 SP 读取多个结果集 https msdn microsoft com en us library jj691402 v

随机推荐

  • AudioOutputUnitStart 非常慢

    我有一个播放单声道音频事件的代码 各种频率的短蜂鸣声 我创建一个 AudioOutputUnit 并在需要播放音频时停止它 我开始它 当我玩到规定的时间后 我就会停止它 听起来很简单 然而 在我的 iPhone 4S 使用 iOS 5 1
  • 通过服务器端处理从数据表中导出所有内容?

    我有使用 DataTables 服务器端处理的表格在我的网站上显示 我希望能够 导出全部 并导出所有行 而不仅仅是显示的那些行 有 60000 行和 65 列 因此必须通过服务器端处理来完成 我尝试了一些方法 但到目前为止没有任何效果 我已
  • 为什么我的代码使用逻辑表达式作为 case 标签会抛出错误?

    switch at case at gt 0 at lt 5 printf Average Time Taken Hrs n d 0 at printf Your Salary is Rs d pj 1500 5000 break 其余代码
  • OverflowError:在 pandas 系列图上格式化日期时,int 太大而无法转换

    我正在尝试绘制 pandas 系列 但当我尝试格式化 x 轴日期时遇到错误 相关的issue https stackoverflow com questions 26642133 why do i get python int too la
  • 在 django Css 中使用自定义字体

    我正在尝试在 Django 应用程序中使用自定义字体 以下是我的 base html 中的相关行 load static 这是我的 css 文件 font face font family FiraCode Retina src url f
  • Heroes 教程中的 Angular RXJS CatchError

    我正在运行 Angular 教程 但我无法理解某一部分中实际发生的情况 我通过搜索找到了一些例子 但没有具体回答这个问题 这是代码 getHeroes Observable
  • PHP GD:图像无法显示,因为它包含错误

    我尝试通过 PHP GD 制作验证码 但不幸的是我遇到了一个问题 PHP 告诉我 The image http 127 0 0 1 par php cannot be displayed because it contains errors
  • 如何在 Visual Studio 中(重新)启用实时 CSS 编辑?

    在 Visual Studio 2015 中 创建一个新的空 C ASP NET Web 应用程序 Framework 4 6 Add WebForm1 aspx div Hello World div Add mycss css div
  • Twilio Node.js - 在 statusCallback 中获取会议参与者详细信息

    我试图能够更新呼叫以将其拨入会议 然后我想跟踪会议中的电话号码 在更新呼叫之前我已经有了电话号码 所以我的计划是将其作为参数添加到 statusCallback 中 然后当有人加入时 我会知道哪个电话号码已加入 或离开 这是我用来将呼叫更新
  • __init__() 缺少 1 个必需的位置参数:'get_response'

    我使用 Django 1 11 并收到此错误 class TenantMiddleware def init self get response self get response get response def call self re
  • 如何在不位于模型文件夹中的情况下创建普通帆模型

    So 我正在为我的应用程序实现一个插件 api 并且插件可以有自己的模型 想象一下 SimplePlugin pluginName simple pluginConfig SimpleModel attributes name string
  • D3 序数尺度仅返回极值。为什么不在范围和域之间进行插值?

    我正在尝试使用d3 scale ordinal 我遇到一个问题 该函数仅返回最小和最大比例值 我正在尝试使用 d3 map 来构建域 然后我对相同的值使用 xScale 函数 我的数据如下所示 key to state value type
  • 上传文件和从 FTP 下载文件

    我正在尝试制作一个上传 下载的程序 exe文件到一个FTP 我尝试使用FtpWebRequest 但我只成功上传和下载 txt文件 然后我在这里找到了一个使用下载的解决方案WebClient WebClient request new We
  • UITableView 在编辑时 didSelectRow 吗?

    我正在构建一个非常类似于内置天气应用程序的翻转视图或编辑模式下时钟应用程序的闹钟视图的界面 表视图始终处于编辑模式 因此删除图标出现在每个单元格的左侧 当表视图处于编辑模式时 我的代表不会收到didSelectRowAtIndexPath通
  • 如何将所有activiti部​​署的bpmn文件转换为camunda?

    在camunda和activiti中 部署的文件存储在 ACT GE BYTEARRAY 表中 bpmn文件插入到blob列 bytes 中 我想将所有 activiti 部署的 bpmn 文件转换为 camunda 最好的方法是什么 Be
  • 在 tkinter 中显示 Pandas 数据框

    我正在创建一个 tkinter gui 它将接受用户输入的变量 然后将其传递给 SQL 和查询的数据 在本例中为单列数据框和箱线图 然而 目前我找不到在 tk gui 中显示我的 pandas 数据框的方法 我还没有找到任何模块或方法来显示
  • 计算坐标列表之间的地理距离(纬度、经度)

    我正在编写一个 Flask 应用程序 使用从 GPS 传感器提取的一些数据 我能够在地图上绘制路线 并且想要计算 GPS 传感器行驶的距离 一种方法可能是只获取开始和结束坐标 但是由于传感器的移动方式 这是非常不准确的 因此 我对每 50
  • 使用 Powershell 编辑 XML 属性

    因此 我有一个 exe config 文件 我试图在其中搜索特定属性 然后使用 Windows 7 中的 Powershell 版本 4 0 对其进行编辑 但我遇到了问题 我尝试了几件事 但没有取得任何成功 这是我正在使用的配置文件的精简版
  • 秒表逻辑

    我想在android中开发一个简单的秒表逻辑 单击列表视图时 计时器应启动 单击按钮时 计时器应停止 任何人都可以指导我吗 任何示例代码都会有很大帮助 使用跑表 https github com cgoldberg netplot blob
  • 如何改进这个排序代码? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi