2012-04-05 104 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列表框項目通過真快變焦。我只是想在lstIndividuals

點擊一個項目,然後我想,要顯示發現了類似的記錄(任何由該規則kvpInd.value.name.name == kvpInd2.value.name.name遵守)

所有類似的項目,我想存儲在tempSimilarFilesToFile1並且成爲lstIndividual2的數據源

如果我解釋得不好,我很抱歉。

謝謝。

回答

0

您每次都在外部循環中初始化tempSimilarFilesToFile1,所以您實際上得到的列表包含_Individuals2中的項目,這些項目與_Individuals1中的最終項目相同。試着在外層循環中註釋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"; 
} 
相關問題