簡體   English   中英

如何檢查任何字段中包含的搜索文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM