[英]iterate through class properties c#
目前,我有一種方法可以創建一個過濾器,該過濾器在我的 c# 后端使用正則表達式按名稱、地址和年齡進行過濾。 我想刪除 if 條件並改用循環。 我怎樣才能做到這一點?
這是我目前的方法。
private static FilterMethod<Logs> GetFilter(Parameters parameters, DateTime startDate, DateTime endDate)
{
var filter = Builders<Logs>.Filter.Gte(x => x.Date, startDate);
filter &= Builders<Logs>.Filter.Lte(x => x.Date, endDate);
if (!string.IsNullOrEmpty(parameters.Name))
{
filter &= Builders<Logs>.Filter.Regex(
"Name",
new BsonRegularExpression(parameters.Name, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Address))
{
filter &= Builders<Logs>.Filter.Regex(
"Address",
new BsonRegularExpression(parameters.Address, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Age))
{
filter &= Builders<Logs>.Filter.Regex(
"Age",
new BsonRegularExpression(parameters.Age, "mi"));
}
return filter;
}
這是我的模型課
public class Parameters
{
public string Name { get; set; }
public string Address { get; set; }
public string Age { get; set; }
}
這里 startDate 和 endDate 不為空。 我總是從前端傳遞當前日期。
我必須使用字典來獲取輸入參數。 有人可以幫忙嗎?
謝謝!!
目前,我有一種方法可以創建一個過濾器,該過濾器在我的 c# 后端使用正則表達式按名稱、地址和年齡進行過濾。 我想刪除 if 條件並改用循環。 我怎樣才能做到這一點?
這是我目前的方法。
private static FilterMethod<Logs> GetFilter(Parameters parameters, DateTime startDate, DateTime endDate)
{
var filter = Builders<Logs>.Filter.Gte(x => x.Date, startDate);
filter &= Builders<Logs>.Filter.Lte(x => x.Date, endDate);
if (!string.IsNullOrEmpty(parameters.Name))
{
filter &= Builders<Logs>.Filter.Regex(
"Name",
new BsonRegularExpression(parameters.Name, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Address))
{
filter &= Builders<Logs>.Filter.Regex(
"Address",
new BsonRegularExpression(parameters.Address, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Age))
{
filter &= Builders<Logs>.Filter.Regex(
"Age",
new BsonRegularExpression(parameters.Age, "mi"));
}
return filter;
}
這是我的模型課
public class Parameters
{
public string Name { get; set; }
public string Address { get; set; }
public string Age { get; set; }
}
這里 startDate 和 endDate 不為空。 我總是從前端傳遞當前日期。
我必須使用字典來獲取輸入參數。 有人可以幫忙嗎?
謝謝!!
目前,我有一種方法可以創建一個過濾器,該過濾器在我的 c# 后端使用正則表達式按名稱、地址和年齡進行過濾。 我想刪除 if 條件並改用循環。 我怎樣才能做到這一點?
這是我目前的方法。
private static FilterMethod<Logs> GetFilter(Parameters parameters, DateTime startDate, DateTime endDate)
{
var filter = Builders<Logs>.Filter.Gte(x => x.Date, startDate);
filter &= Builders<Logs>.Filter.Lte(x => x.Date, endDate);
if (!string.IsNullOrEmpty(parameters.Name))
{
filter &= Builders<Logs>.Filter.Regex(
"Name",
new BsonRegularExpression(parameters.Name, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Address))
{
filter &= Builders<Logs>.Filter.Regex(
"Address",
new BsonRegularExpression(parameters.Address, "mi"));
}
if (!string.IsNullOrEmpty(parameters.Age))
{
filter &= Builders<Logs>.Filter.Regex(
"Age",
new BsonRegularExpression(parameters.Age, "mi"));
}
return filter;
}
這是我的模型課
public class Parameters
{
public string Name { get; set; }
public string Address { get; set; }
public string Age { get; set; }
}
這里 startDate 和 endDate 不為空。 我總是從前端傳遞當前日期。
我必須使用字典來獲取輸入參數。 有人可以幫忙嗎?
謝謝!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.