2009-08-16 2 views
0

Когда я ударил по утверждению, я был удивлен, потому что ожидал, что моя реализация будет правильной. Он должен работать, но не так, я написал код ниже и закомментировал утверждение и найти. Почему мой код работает и не находит?TreeNodeCollection.Find, похоже, не работает

  var z = n.Find(v[i], false); 
      //Debug.Assert(z.Count() == 1); 
      //n = z[0].Nodes; 
      if (z.Count() != 1)//count == 0 
      { 
       for (int ii = 0; ii < n.Count; ii++) 
       { 
        if (n[ii].Text == v[i]) 
        { 
         n = n[ii].Nodes; 
         break; 
        } 
       } 
      } 

ответ

2

Метод Find() принимает ключ (а не значение).

TreeNode root = new TreeNode("root"); 

    TreeNode t1 = new TreeNode(); 
    t1.Nodes.Add("A","A1"); 
    t1.Nodes.Add("B","B2"); 
    t1.Nodes.Add("C","C3"); 
    root.Nodes.Add(t1); 
    TreeNodeCollection tc = root.Nodes; 
    var tt = tc.Find("A",true );