未分類

【C# ListView】アイテムをカンマ区切りの文字列に変換する (3)

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストビュー (listView1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void Form1_Load(object sender, EventArgs e)
{
  listView1.View = View.Details;
  listView1.Columns.Add("メーカー", 100, HorizontalAlignment.Left);
  listView1.Columns.Add("パソコン名", 100, HorizontalAlignment.Left);
  listView1.Items.Add("NEC").SubItems.Add("ValueStar");
  listView1.Items.Add("SONY").SubItems.Add("VAIO");
  listView1.Items.Add("DELL").SubItems.Add("Precision");
}

delegate IEnumerable<string> Test(ListViewItem.ListViewSubItemCollection subitems);

private void button1_Click(object sender, EventArgs e)
{
  Test td = new Test(is2);
  
  foreach (ListViewItem lvi in listView1.Items)
  {
    string s2 = string.Join(",", td(lvi.SubItems));
    listBox1.Items.Add(s2);
  }
}

private IEnumerable<string> is2(ListViewItem.ListViewSubItemCollection subitems)
{
  for (int i = 0; i < subitems.Count; i++)
  {
    yield return subitems[i].Text;
  }
}

解説

構成は前回分とほぼ同じです。サブアイテムのコレクションを作成するときに delegate を使用しています。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類