splitting the lines up manually is no longer required. dotnet3.5 has the lines array member of the ritchtextbox control. so it works to just call that..
as for the selecting of lines, you can only select using the start number of the charter, so we can easily use built in functions of the ritchtextbox control to do this all for us. I created two variables and hardcoded them to some easy for testing line numbers, but just set thoes values to a number parsed from a textbox or something to get the dynamic effect you are looking for.
Here is the completed working code, assuming you are using a ritchtextbox control, named ritchtextbox1.
int firstlinenumber = 2;//set this to the line number to start selection with.
int endlinenumber = 3;// set this to line number to end slection with.
int selectstart = richTextBox1.GetFirstCharIndexFromLine(firstlinenumber-1);
int selectend = richTextBox1.GetFirstCharIndexFromLine(endlinenumber-1) + richTextBox1.Lines[endlinenumber-1].Length;
int selectlenght = selectend - selectstart;
richTextBox1.Focus();//important. you cant select when the
//textbox doesn't have focus. so focus it before you select
richTextBox1.Select(selectstart, selectlenght);
important to note: this can be done the same way in fewer lines, just condensed. I tried to spread it out, so it made more sense of how it works. Its important to learn!
happy coding.