como programaticamente adicionar XmlNode a um XmlNodeList

Eu tenho um XmlNodeList de produtos cujos valores são colocados em uma tabela. Agora, quero adicionar um novo XmlNode à lista quando um determinado produto for encontrado, de modo que, no mesmo loop, os novos produtos sejam tratados da mesma forma que os itens que estão originalmente no arquivo. Desta forma, o structire da função não precisa mudar, basta adicionar um nó extra que é processado em seguida. Mas um XmlNode é uma classe abstrata e não consigo descobrir como criar o novo nó programaticamente. Isso é possível?

XmlNodeList list = productsXml.SelectNodes("/portfolio/products/product");

for (int i = 0; i < list.Count; i++)
{
  XmlNode node = list[i];

  if (node.Attributes["name"].InnertText.StartsWith("PB_"))
  {
    XmlNode newNode = ????
    list.InsertAfter(???, node);
  }

  insertIntoTable(node);
}

questionAnswers(2)

yourAnswerToTheQuestion