【发布时间】:2021-01-13 18:03:39
【问题描述】:
我有一个名为LogData 的列表数据。它的代码是这样的。
var LogData = LogDataList.Select(data => new LogDataDto
{
RowCount = RowCount,
Location = data.LocationName,
Sender = data.FullName,
AccountName = data.AccName,
Messsage = data.Message
}).ToList();
应用程序为我提供了名为searchText 的前端值。我需要检查搜索文本值是否包含在 LogData 的任何字段中
当searchText = "" 我需要获取所有LogData 并且如果searchText 有一些值,我需要检查该值是否包含在任何这些文件中Location,Sender,AccountName and Messsage 并且需要获取这些记录。
所以试了一下,
var result = LogData.Where(x => (searchText == "" || x.Location.Contains(searchText)) || x.Messsage.Contains(searchText));
这是正确的方法吗?如何检查搜索文本值是否包含在其他字段中?
【问题讨论】:
-
是的,这会起作用。是什么阻止您将其也扩展到 Sender 和 AccountName?
-
可能会稍微快一点
searchText == "" ? LogData : LogData.Where(x => x.Location ... -
@DavidL 问题是我需要良好的代码实践来做到这一点。您能否为我提供其他领域的代码,以及先生
-
@Charlieface 先生,你能提供我完整的代码吗?这是正确的
searchText == "" ? LogData : LogData.Where(x => x.Location.Contains(searchText) || x => x.AccountName.Contains(searchText)) -
这里是一个例子,在 .net 核心 codewithmukesh.com/blog/jquery-datatable-in-aspnet-core 中为 jquery 数据表做你想做的事情@