I do something kind of different for conversations, I don't use a dictionary, I use a loop. It looks something like this
string[] talkArray =
{
"Aggressor: I shot him!",
"Victim: He shot me!"
}
for (i = 0; i < talkArray.Length; i++)
{
while (!Game.IsKeyDown(Keys.Y)) GameFiber.Yield();
Game.DisplaySubtitle(talkArray[i]);
GameFiber.Sleep(1000); //You don't need the sleep I just like to have it in my code so the person reads the entire text
}
That really should give you the same effect but you could choose either way.