如何从listview获取所有项目到字符串[]?

时间:2011-12-06 19:52:22

标签: c#

ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = @".\ext.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
int i=0;
string item = listView1.Items[i++].Text;
startInfo.Arguments = "--logfile=duration_output.txt " + (item);

我试图将所有项目列为string[],但是应用程序会给我一个空的日志文件。
当我使用简单的string item = listView1.Items[i++].Text时,它只给出了输出中的第一个文件。

怎么可能这样做?

5 个答案:

答案 0 :(得分:3)

你在找这样的东西吗?

startInfo.Arguments = "--logfile=duration_output.txt " +
    string.Join(" ", from item in listView1.Items.Cast<ListViewItem>()
                     select @"""" + item.Text + @""""
               );

答案 1 :(得分:2)

您需要遍历列表视图中的所有项目并将它们连接成一个字符串:

string item = string.Empty;
foreach (ListViewItem anItem in listView1.Items)
{
  item += " " & anItem.Text;
}

答案 2 :(得分:2)

试试这个:

string[] items = listView1.Items.Select(x => x.Text).ToArray();

答案 3 :(得分:0)

StringBuilder args = new StringBuilder();
args.Append("--logfile=duration_output.txt");
foreach( var str in listView1.Items )
{
    args.Append( " " );
    args.Append( str );
}

答案 4 :(得分:-1)

//这是您可以直接在System.Diagnostics上使用的内容 //它只是将Console.WriteLine替换为您正在使用的Stream Class。 //替换我使用System.Diagnostics和ListView的地方通过listview itesm迭代

    System.Diagnostics.Process[] proc = System.Diagnostics.Process.GetProcesses();
    foreach(Process theprocess in proc)
    {
      Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
    }