我有一个Click函数,用于启动带有所选参数的程序
private void Launch_Click(object sender, RoutedEventArgs e)
{
//start up proccess here
Process.StartInfo.Arguments = app + app_output + nosplash + showscripterrors;
etc...
}
工作正常但是对于字符串app_output是使用下面代码的foreach语句。问题是在参数中只设置了最后一个foreach项。我基本上希望app_string是itemA; itemB; itemC等......
string app_string = "0";
string app_output = "0";
foreach (var item in TheList)
{
//item.PropertyChanged += TheList_Item_PropertyChanged;
if (item.IsSelected == true)
{
app_string = item.TheText;
app_output = app_string + ";";
}
else
{
//System.Windows.MessageBox.Show("no item selected");
}
}
我将如何获取app_output来呈现foreach项目?喊我将foreach输入数组?
我已尝试将foreach代码放在参数字符串中,但不允许在其中使用foreach方法。
答案 0 :(得分:2)
使用它:
string line = string.Join(";", TheList.Where(x => x.IsSelected).Select(x => x.TheText));
String.Join方法
使用每个元素之间的指定分隔符连接指定数组的元素或集合的成员 构件。
https://msdn.microsoft.com/en-us/library/system.string.join%28v=vs.110%29.aspx
答案 1 :(得分:1)
最好的是使用StringBuilder:
StringBuilder sb = new StringBuilder();
foreach(var item in TheList)
{
sb.AppendFormat("{0};",item);
}
string app_ouput = sb.ToString();