c# - 我可以缩短这个“如果”条件吗?
问题描述
我有这个条件:
if (pt.left == anything || pt.left == null || pt.left == borders.left || borders.left == anything)
我可以让它更短吗?我正在考虑这样的事情:
if(pt.left == (anything || null || borders.left) || borders.left == anything)
有什么办法吗?
解决方案
您可以将元素放在一个数组中并使用包含。
if((new string[]{anything, null, borders.left}).Contains(pt.left) || borders.left == anything)
或者,把 if 放在外面:
var arr = new string[]{anything, null, borders.left};
if(arr.Contains(pt.left) || borders.left == anything)
或者,使用扩展方法:
public static class MyExtensions
{
public static bool IsIn<T>(this T obj, params T[] array)
{
return array.Contains(obj);
}
}
用法:
if(pt.left.IsIn(anything, null, borders.left) || borders.left == anything)
推荐阅读
- python - 在 QTableView 中使用 QSortFilterProxyModel 过滤结果
- botframework - 使用 sourceEvent 在 bot 框架模拟器中显示按钮
- fullcalendar - fullcalendar:将图像放置在所有日子单元格的中心
- c# - 尝试使用 Windows.System.UserProfile 时,“类型转发到程序集 'Windows 版本 = 255.255.255.255'”
- objective-c - 如何在具有参数的objective-C中实现快速委托方法?
- python - 与 nan 结交独特的情侣
- sql - 我们可以在将数据从 CSV 文件导入 SQL Server 时设置排序规则名称吗
- javascript - 在页面加载和错误的脚本工作时不显示内容
- node.js - 你可以通过跳过一个级别的数据或数据分组来拉取mongodb数据吗?
- php - 如何在 swift 4 中将数据从 iOS 发送到 MySql 数据库