我正在尝试创建动态语法功能,函数语法如下:
MyFunction( arg1,arg2,ar3.....);
我有这样的字符串:
str = Previousvalue.Value1,Previousvalue.Value2
现在我想在最终变量中创建这样的语法:
String final = MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);
str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
String final = MyFunction(Previousvalue.Value1,',',Previousvalue.Value2,',',Previousvalue.Value3);
这就是我试图用string.join
(不使用循环)实现的方法,但没有得到如何做到这一点,如果不使用循环,这似乎是不可能的:
final = string.Join("MyFunction(", str.Split(','));
案例1:
Input : string str =Previousvalue.Value1,Previousvalue.Value2
输出
string final=MyFunction(Previousvalue.Value1,',',Previousvalue.Value2,',',Previousvalue.Value3);
案例2:
Input : str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
输出:
String final = MyFunction(Previousvalue.Value1,',',Previousvalue.Value2,',',Previousvalue.Value3);
案例3:
string input = " Previousvalue.Value1";
输出:
String final = Previousvalue.Value1; //No function
答案 0 :(得分:1)
根据我对问题的理解,您希望使用 n 字符串参数调用MyFunction
方法,还使用string[]
。你可以这样做:
public static void Main(string[] args)
{
string str = "Test1,Test2,Test3";
string test1 = MyFunction("Test1", "Test2", "Test3");
string test2 = MyFunction(str.Split(','));
}
public static string MyFunction(params string[] parameters)
{
StringBuilder sb = new StringBuilder();
foreach(var item in parameters)
{
sb.AppendLine(item);
}
return sb.ToString();
}
答案 1 :(得分:1)
根据我的理解,您希望生成一个字符串,如下所示:
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
^..........^...................^....^...................^.
prefix arg1 sep arg2 suffix
或换句话说
prefix = "MyFunction(";
separator = ",',',";
suffix = ");"
可以通过将prefix
和suffix
移出string.Join
并使用上述separator
值来实现:
string final = "MyFunction(" + string.Join(",',',", str.Split(',')) + ");";
而不是Split
/ Join
,您只需使用string.Replace
:
string final = "MyFunction(" + str.Replace(",", ",',',") + ");";
答案 2 :(得分:0)
尝试:
UserSchema.pre('save', function(next) {
if (this.name !== undefined) {
if (this.name.length <= 6) {
// throw error or whatever
}
}
next();
});