如何修整这些行上的空值检查问题

时间:2019-01-16 10:46:56

标签: c# .net c#-4.0 trim nul

我的问题是关于修剪。最佳做法是,我想在末尾或任何地方修剪意外的空白区域。这是关于从数据库中提取的 string(Varchar)列(称为“消息”)。现在,对于不同的行,它包含各种数据类型的折衷值,例如十进制值“ $ 200”,逗号分隔值“ 123、322、345、344”,整数值“ 34”(包括负数)。在某些情况下也为空值。

将静态列作为字符串包含但包含所有这些值,这是一条强大的业务规则,我们将其用于服务中的验证。我担心它会对空条件(如果有的话)做出反应,以及我将如何处理空白空间?喜欢修剪等,请建议我。我在每个if中都做空条件,并作为第一个附加“ &&”,然后进一步解析,具体取决于我想要的内容,如int / decimal / list等。现在,在执行此操作时,我要确保它删除空格...

问题1

这是否意味着如果Message为null,它甚至不会在&&之后评估条件?还可以在解析之前进行修剪吗? :

If(!string.IsNullOrWhiteSpace(objName.Message) && ValueList.Any( x => x > decimal.Parse(objName.Message, NumberStyles.Currency))) 

问题2

如何修剪呢?

string[] fromDB = objName.Message.Split(','); 

问题3

list是列表。每个项目只有一个字符,例如“ A”,“ B”,我在指示符中获得了类似的字符,例如“ C”,“ B”等,但指示符是一个字符串。大写字母,我仍然在思考应该转换为较低的吗?还修剪?请在这种情况下建议最佳做法

bool indics = list.Contains(indicator); 

问题4

我们也可以在这里修剪吗?

DateTime.Now.AddDays(int.Parse(objName.Message))

问题5

我们也可以在这里修剪吗?

int.Parse(objName.Message) 

1 个答案:

答案 0 :(得分:1)

  1. 您可以使用小数点。TryParse(str,out decVar)它返回bool(如果解析为flase,则为true,否则为true)。我认为1应该看起来像这样:

    decimal objNameMsg = 0m;
    
    if (decimal.TryParse(objName.Message.Trim(), out objNameMsg) && ValueList.Any( x => x > objNameMsg))
    
  2. 如果要在拆分之前修整值,请执行以下操作:

    string[] fromDB = objName.Message.Trim().Split(','); 
    

    但是,如果要在拆分后对其进行修整,我认为需要使用一个循环。

  3. 您可以这样调整指标:

    bool indics = list.Contains(indicator.Trim());
    

    但是,如果要修剪列表,请再次循环;

  4. 是:

     DateTime.Now.AddDays(int.Parse(objName.Message.Trim()))
    
  5. 是的,您可以:

     int.Parse(objName.Message)