2017-07-12 2 views
0

私は2つのリストを持っています。。リストビューを除いて

public IList<string> List1 { get; set; } 
public IList<string> List2 { get; set; } 

私はExceptを使用して2つのリストを比較して、私は私が得るListView

var list = List1.Except(List2).ToString(); 
ListViewItem listView = new ListViewItem(list); 
this.testListView.Items.Add(listView); 

出力に表示するには、このコードを持っているListView

内の項目を表示しようとしています"System.Linq.Enumerable+<ExceptIterator>d__72'1[System.String]"

です

私は間違ったことをしていますが、それが何であるか把握できません。誰かが私を正しい方向に向けることができますか?

ありがとうございます!

+0

はなぜ除き、後にtoString()をやって? ToList()を実行できます。 –

+0

@ChetanRanpariya私はそれを試して、コードの2行目で、 'System.Collections.Generic.List を 'string''に変換できないというエラーが表示されます – Dazzler

+0

ListViewに' list'変数の項目を追加しますか?次に、 'list'の項目をループしてListViewに1つずつ追加します。 –

答えて

2

あなたが試すことができ、この(それはリストボックスを使用していない奇妙だけれどもあなたは、1行に1つの文字列を表示したいと仮定):

private void button1_Click(object sender, EventArgs e) 
    { 
     //add Columns, which you might have done in designer 
     //this.testListView.Columns.Add... 
     this.testListView.View = View.Details; 
     var list = List1.Except(List2).ToList(); 
     for (int i = 0; i < list.Count; i++) 
     { 
      ListViewItem item = new ListViewItem(list[i]); 
      this.testListView.Items.Add(item); 
     } 
    } 
+0

はい - 常にそのような条件をテストして処理する必要があります。例えば。 'if(list.Count == 0)return;' – ainwood

+0

@Dazzlerは更新されました。 –

+0

@LeiYangありがとう、それは 'ArgumentOutOfRangeException'を修正しました。しかし、私はリスト内の1つのアイテム、すなわち 'list [0]'しか見ることができません。何か不足していますか?リストビューには 'string'型の1つの列と約300の項目しか含まれていません。リストは単なる行ではなく、複数の行でもあります。 – Dazzler

関連する問題