2012-04-05 9 views
0

私はほぼ答えに近いですが、面倒ではありません。 これまでのところ、私のコードは次のとおりです。あなたはおそらく見ることができるようにリストオブジェクトをクリックし、別のリストボックスに他の複数のリストオブジェクトを表示するC#

private void lstIndividuals_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     var individual = lstIndividuals.SelectedItem as Individual; 
     var tempSimilarFilesToFile1 = new HashSet<Individual>(); 
     int Counter = 0; 
     foreach (KeyValuePair<int, Individual> kvpInd in _Individuals1) 
     { 
      tempSimilarFilesToFile1 = new HashSet<Individual>(); 
      foreach (KeyValuePair<int, Individual> kvpInd2 in _Individuals2) 
      { 
       if (kvpInd.Value.name.name.ToLower() == kvpInd2.Value.name.name.ToLower()) 
       { 
        Counter++; 
        similarInds.Add(kvpInd.Value); 
        if (Counter >= 1) 
        { 
         tempSimilarFilesToFile1.Add(kvpInd2.Value); 
        } 
       } 
      } 
     lstIndividuals2.DataSource = tempSimilarFilesToFile1.ToList(); 
     lstIndividuals2.DisplayMember = "DisplayName"; 
     lstIndividuals2.ValueMember = "id"; 
    } 

lstIndividuals2リストボックスの項目は本当に速くてズームされています。私はちょうど私がtempSimilarFilesToFile1に格納されたい、そして、私はそれが見つけ類似したレコード(ルールkvpInd.value.name.name == kvpInd2.value.name.nameを遵守もの)

にすべての関連商品を表示したいと思いlstIndividuals

でアイテムをクリックしたいと思いますlstIndividual2

私がひどく説明した場合はお詫び申し上げます。

ありがとうございます。

答えて

0

外部ループに毎回tempSimilarFilesToFile1を初期化するので、_Individuals1の最後の項目と同じ項目_Individuals2が実際にリストに含まれます。外側ループのinit文をコメントし、それが役立つかどうかを確認してみてください。

private void lstIndividuals_SelectedIndexChanged(object sender, EventArgs e)  
{ 
    var individual = lstIndividuals.SelectedItem as Individual; 
    var tempSimilarFilesToFile1 = new HashSet<Individual>(); 
    int Counter = 0; 
    foreach (KeyValuePair<int, Individual> kvpInd in _Individuals1) 
    { 
     // comment the statement below 
     //tempSimilarFilesToFile1 = new HashSet<Individual>(); 
     foreach (KeyValuePair<int, Individual> kvpInd2 in _Individuals2) 
     { 
      if (kvpInd.Value.name.name.ToLower() == kvpInd2.Value.name.name.ToLower()) 
      { 
       Counter++; 
       similarInds.Add(kvpInd.Value); 
       if (Counter >= 1) 
       { 
        tempSimilarFilesToFile1.Add(kvpInd2.Value); 
       } 
      } 
     } 
    lstIndividuals2.DataSource = tempSimilarFilesToFile1.ToList(); 
    lstIndividuals2.DisplayMember = "DisplayName"; 
    lstIndividuals2.ValueMember = "id"; 
} 
関連する問題