2012-04-05 60 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"; 
} 
相关问题