If you are trying to maintain a "global list", why are you throwing away everything in it every time you call that method, not once, but twice?
At the beginning, you discard any existing list:
list = new List<string>();
string s1 = Fname;
...
Then when you have built a string to put in it, you discard it all over again:
...
c += str1;
list = new List<string>();
list.Add(c);
...
TBH, it looks like you are guessing, copying code from random places without trying to understand it, and hoping it will magically all work in the end (The indentation is a big clue here, as is the code which generates the string - there is a lot of redundancy there).
That won't work: sit down, think about what you are trying to do, and design a solution instead of hoping and praying it will work. If you want a "global list", then you want to create it in one location, once only, and add and remove items as needed from there.