in my project i using this method to delete
But that's saying "I want a new array where no element is the word "jane" so it removes all of them
Here's one method to remove an arbitrary index from an array using a List:
List<string> l = new List<string>(test);
l.RemoveAt(0);
string[] newTest = l.ToArray();
To be honest, you might be better to avoid using an array all together, and just use a List as your storage device if you need this kind of edit
Consider also the advice found here: Remove element of a regular array
If your question is "I want to remove the first occurrence of jane but not the second", let's find the first jane, then make a new array that excludes it:
List<string> l = new List<string>(test.Length);
bool removing = true;
foreach(string s in test) {
if(removing && s == "jane")
removing = false;
else
l.Add(s);
}
string[] newTest = l.ToArray();
There are other ways; you could indexOf to find the first jane, and then Array.Copy everything up to but not including the first instance, and everything after, not including etc.. This code is fairly self documenting though - iterate the array, looking for jane, if we find her and we're still in removing mode, just turn removing mode off (this jane is then never added it to the list, and turning off the removing flag means we'll certainly add the rest of the names into the list) and carry on processing the rest of the list
Consider how much simpler this code would be though if you were just using a List as your storage container:
test.RemoveAt(test.IndexOf("jane"));