The way I see it, there are 3 stages to learning how to program:
1) Learning general programming concepts. Object oriented programming, functional programming, algorithms, the theory behind computers etc. This is important because its just as important to formulate your ideas correctly as it is to form the words in your chosen language. This is the real meat of programming. This is the stuff that remains the same regardless of programming language, and reduces programming languages into just a set of tools.
2) Learn the syntax. You'll need to do this for every language you learn. Learning syntax is the easiest part of programming and also the least valuable.
3) Practice. Do this every spare moment you have for the rest of your life.
It sounds like you've been following "tutorials" and other online resources. Unfortunately they are quite notorious for only teaching #2, skimming over #1 and barely mentioning #3.
I would recommend stepping back a bit from learning "C#" and focus a bit more on learning the general concepts and then move onto the practice. I remember being in a similar situation to you where I was stuck and wondering how I could go from depending on other programmer's to writing my own code without copying anyone. In hindsight, I would say my problem back then was essentially that I didn't have the foundation that allowed me to quickly and easily decompose problems I cared about into the set of tools a programming language provides.
I learned my foundation through a computer science degree, which is probably one of the best options. If that doesn't work for you - then maybe some of the other members can recommend some excellent books on the topic. What I recall from my textbooks was that they were horrible - so I won't bother recommending them. "The Art of Computer Programming" by Donald E. Knuth is a classic, but you might want something that guides you along a little more. Generally you can try searching Amazon for programming books - look at the ones that are more focused on the design of programs and concepts such as object oriented programming then teaching you a particular language.