C# 通过操纵字符串创建函数语法

C# 通过操纵字符串创建函数语法,c#,.net,linq,C#,.net,Linq,我正在尝试创建动态语法函数,函数语法如下: MyFunction( arg1,arg2,ar3.....); 我有这样的字符串: str = Previousvalue.Value1,Previousvalue.Value2 public static void Main(string[] args) { string str = "Test1,Test2,Test3"; string test1 = MyFunction("Test1",

我正在尝试创建动态语法函数,函数语法如下:

MyFunction( arg1,arg2,ar3.....);
我有这样的字符串:

str = Previousvalue.Value1,Previousvalue.Value2
    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();
    }
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
 ^..........^...................^....^...................^.
 prefix     arg1                sep  arg2                suffix
现在我想在final变量中创建如下语法:

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
Input : str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
string input = " Previousvalue.Value1";
String final = Previousvalue.Value1; //No function
输出:

string final=MyFunction(Previousvalue.Value1,',',Previousvalue.Value2,',',Previousvalue.Value3);
案例2:

Input : string str =Previousvalue.Value1,Previousvalue.Value2
Input : str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
string input = " Previousvalue.Value1";
String final = Previousvalue.Value1; //No function
输出

String final = MyFunction(Previousvalue.Value1,',',Previousvalue.Value2,',',Previousvalue.Value3);
案例3:

Input : string str =Previousvalue.Value1,Previousvalue.Value2
Input : str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
string input = " Previousvalue.Value1";
String final = Previousvalue.Value1; //No function
输出:

Input : string str =Previousvalue.Value1,Previousvalue.Value2
Input : str = Previousvalue.Value1,Previousvalue.Value2,Previousvalue.Value3;
string input = " Previousvalue.Value1";
String final = Previousvalue.Value1; //No function

根据我对问题的理解,您希望使用n个字符串参数调用
MyFunction
方法,但也可以使用
string[]
。您可以这样做:

str = Previousvalue.Value1,Previousvalue.Value2
    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();
    }
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
 ^..........^...................^....^...................^.
 prefix     arg1                sep  arg2                suffix

根据我对问题的理解,您希望使用n个字符串参数调用
MyFunction
方法,但也可以使用
string[]
。您可以这样做:

str = Previousvalue.Value1,Previousvalue.Value2
    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();
    }
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
 ^..........^...................^....^...................^.
 prefix     arg1                sep  arg2                suffix
尝试:

尝试:


据我所知,您希望生成一个字符串,如下所示:

str = Previousvalue.Value1,Previousvalue.Value2
    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();
    }
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
 ^..........^...................^....^...................^.
 prefix     arg1                sep  arg2                suffix
或者换句话说

prefix = "MyFunction(";
separator = ",',',";
suffix = ");"
这可以通过将
前缀
后缀
移出
字符串来实现。加入
并使用上述
分隔符
值:

string final = "MyFunction(" + string.Join(",',',", str.Split(',')) + ");";
您也可以使用
字符串来代替
拆分
/
加入
。替换

string final = "MyFunction(" + str.Replace(",", ",',',") + ");";

据我所知,您希望生成一个字符串,如下所示:

str = Previousvalue.Value1,Previousvalue.Value2
    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();
    }
"MyFunction(Previousvalue.Value1,',',Previousvalue.Value2);"
 ^..........^...................^....^...................^.
 prefix     arg1                sep  arg2                suffix
或者换句话说

prefix = "MyFunction(";
separator = ",',',";
suffix = ");"
这可以通过将
前缀
后缀
移出
字符串来实现。加入
并使用上述
分隔符
值:

string final = "MyFunction(" + string.Join(",',',", str.Split(',')) + ");";
您也可以使用
字符串来代替
拆分
/
加入
。替换

string final = "MyFunction(" + str.Replace(",", ",',',") + ");";

对不起,不清楚。字符串到底是什么?这个示例字符串的期望结果是什么?@TimSchmelter:我已经更新了问题以显示输入和输出。您仍然提供了一个输出
“string final=MyFunction(…”
字符串是字符串的最终部分
还是一个变量声明?如果是后者,为什么你没有将
MyFunction
-部分用引号括起来?对不起,不清楚。字符串到底是什么?这个示例字符串的期望结果是什么?@TimSchmelter:我更新了问题以显示输入和输出。好的,你知道吗仍然提供了一个输出
“String final=MyFunction(…”
,字符串是字符串的最终部分还是变量声明?如果是后者,为什么没有将
MyFunction
-部分用引号括起来?对不起,使用你的答案,我在两个变量之间得到了逗号,就像在我的输出中一样对不起,使用你的答案,我在两个变量之间得到了逗号,就像在我的输出中一样请看我更新的问题,其中2个案例显示输入和输出请看我更新的问题,其中2个案例显示输入和输出