[英]How to check search text contains in any field
我有一個名為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
Messsage 中,並且 nee 以獲取這些記錄。
所以試了一下,
var result = LogData.Where(x => (searchText == "" || x.Location.Contains(searchText)) || x.Messsage.Contains(searchText));
這是正確的方法嗎? 我如何檢查其他文件中包含的搜索文本值?
如果您需要搜索四個字段,您可以繼續擴展您的 OR 條件以包括其他字段。
var result = LogData.Where(x => (
searchText == "" ||
x.Location.Contains(searchText) ||
x.Messsage.Contains(searchText) ||
x.Sender.Contains(searchText) ||
x.AccountName.Contains(searchText))
);
正如 Charlieface 所提到的,您可以通過將searchText == ""
視為提前退出條件並在沒有 where 子句的情況下返回您的集合來對此進行一些優化。
var result = searchText == "" ? LogData : LogData.Where(x => (
x.Location.Contains(searchText) ||
x.Messsage.Contains(searchText) ||
x.Sender.Contains(searchText) ||
x.AccountName.Contains(searchText))
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.