Не уверен, правильно ли я понял ваш вопрос, но исходя из того, какой вывод вы ищете, и как инициализируется состояние представления, я думаю, вам следует объединить ip и статус при передаче его в представление состояния.
Примерно так:
ViewData["ip_stat"] = reply.Address + " " + reply.Status;
Надеюсь, это поможет.
Отредактировано для случая, когда адреса выбираются из некоторой таблицы и должны быть переданы в viewstate
// suppose this variable has the list of IP addresses from the table
var addresses = new List<string> {"8.8.8.8", "192.168.10.10", "192.168.10.8"}
var ipStatusDict = new Dictionary<string, string>();
//iterate over the list, fetch the status for each ip and add it within the dictionary
foreach(var ip in addresses)
{
var reply = new Ping().Send(ip, 1000);
if (reply != null)
{
ipStatusDict.Add(reply.Address, reply.Status);
}
}
ViewData["ip_stat"] = ipStatusDict;