我的问题是关于修剪。最佳做法是,我想在末尾或任何地方修剪意外的空白区域。这是关于从数据库中提取的 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)
答案 0 :(得分: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))
如果要在拆分之前修整值,请执行以下操作:
string[] fromDB = objName.Message.Trim().Split(',');
但是,如果要在拆分后对其进行修整,我认为需要使用一个循环。
您可以这样调整指标:
bool indics = list.Contains(indicator.Trim());
但是,如果要修剪列表,请再次循环;
是:
DateTime.Now.AddDays(int.Parse(objName.Message.Trim()))
是的,您可以:
int.Parse(objName.Message)