c# - 有没有办法在运行时更改字符串属性“包含”的值?
问题描述
我的 xamarin 移动应用程序中有三个过滤器(选择器)。每个过滤器包含 5 个选项:包含、不包含、开始于、结束于、等于。所以现在我想应用所有这些过滤器来过滤来自 a 的数据List<T>
并将其显示在页面上。
这是我到目前为止写的代码。当所有这些过滤器都选择了相同的选项“包含”时,它可以正常工作。
var customer = customerSearchDataModels.Where(x =>
(x.Number.Contains(NameNumberEntryText)) &&
(x.Email.Contains(EmailEntryText)) &&
(x.PrimaryPhone.Contains(PhoneEntryText));
解决方案
您可以将查询拆分为多个部分,例如:
IEnumerable<Customer> query = customerSearchDataModels;
if(UseContainsName)
query = query
.Where(x => x.Number.Contains(NameNumberEntryText));
if(UseContainsPhone)
query = query
.Where(x => x.PrimaryPhone.Contains(PhoneEntryText));
var result = query.ToList();
您可以添加多个 if 语句,例如 StartsWith 等。此方法还可用于更改排序升序/降序和/或不同的列名。
如果您使用的是数据库连接,则应将 IEnumerable 替换为 IQueryable,以便构建正确的 sql-query。
推荐阅读
- python - 如何在 5 个位置上获得 N 位的所有字母数字组合
- amazon-web-services - 通过 AWS SES 将多封邮件发送到同一个收据
- postgresql - 如何使用 postico 之类的 GUI 客户端从我的家庭操作系统连接到 postgres?
- java - 如果值为空/空或某些特定字符串,如何检查 JSP 变量并隐藏?
- python - 使用 edx 在 Windows 服务器 2012 操作系统上具有活动目录的 SSO。
- android - android - 改造 2 - 无法读取 json 数组并解析它
- kotlin - 设计选项卡中的 Android Studio 错误
- javascript - 如何从数组中给 div 随机背景颜色
- android - 如何在意图的帮助下打开活动托管的第 n 个片段?
- c# - 如何拆分具有逗号和空格组合字符的文本?