You are WAY off my friend. First, you don't ever get the P.ID you are looking for. Second, you are simply concatenating the contents of 3 arrays to get your output... don't make it more complicated than it has to be. Thirdly, there is no reason for a recursive function.
static void Main(string[] args)
{
List<string> userID = new List<string>() = { "1", "2","3","4"};
List<string> unitName = new List<string>() = { "Anil", "Kumar","Phani","Shruthi"};
List<string> pID = new List<string>() = { "0", "1" ,"1","2"};
for(int i=0; i < pID.Count; i++)
{
if (pID[i] == args[0])
{
Console.WriteLine(userID[i] + " " + unitName[i] + " " + pID[i]);
}
}
Console.ReadKey();
Call your program passing the desired P.ID on the command line. You will get the output you want.