2016-11-30 3 views
0

Я пытаюсь создать функцию динамического синтаксиса и синтаксис функции, как показано ниже:Создание синтаксиса функции манипулируя строки

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 
+2

К сожалению, не Чисто. Что такое строка и какой желаемый результат с этой примерной строкой? –

+0

@TimSchmelter: У меня есть обновленный вопрос, чтобы показать ввод и вывод –

+0

Ну, вы все же предоставили вывод '' String final = MyFunction (... "', это 'String final' часть строки или это переменная Если последнее, почему вы не завернули часть 'MyFunction' в кавычки? –

ответ

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(",", ",',',") + ");"; 
1

Из моего понимания проблемы, которую вы хотите назвать методом MyFunction с параметрами строки n, а также с 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(); 
    } 
+0

См. мой обновленный вопрос с 2 случаями, которые показывают ввод и вывод –

0

Try:

public string MyJoin(params string[] vars) 
{ 
    return "MyFunction(" + string.Join(",", vars) + ");"; 
} 
+0

Извините, но, используя ваш ответ, я получаю запятую между двумя переменными типа в моем выпуске –

Смежные вопросы