Вы можете сделать что-то вроде добавления \ r в конец последнего console.write, чтобы получить курсор в начале строки.
Затем прочитайте ваш ввод и объедините новый ввод с исходным выводом. Поскольку ваша readline только читает новые данные, вы должны добавить (перезаписать) эти новые данные в ваши исходные данные.
Однако это будет работать только в том случае, если длина напечатанной строки меньше ширины консоли.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace ConsoleApplication3
{
class Program
{
static string f_WriteIpAddresses()
{
IPHostEntry host;
string localIP = "?";
string retVal = "";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
Console.Write(ip.ToString());
Console.Write(" - ");
retVal = ip.ToString() + " - ";
}
}
return retVal;
}
static void Main(string[] args)
{
Console.WriteLine("Your IP Address:");
string oldip = f_WriteIpAddresses();
Console.Write("[You can delete/modify address]\r");
string ip = Console.ReadLine();
string newip = ip + oldip.Substring(ip.Length);
}
}
}
Приведенное выше должно дать новый IP-адрес, но имеет ограничения, такие как, работает только для одной строки и т. Д.