Without your data and some idea what the error message is (and the actual data that generates it) we can't help you - and you have to remember that we can't see your screen, access your HDD, or read your mind - we only get exactly what you type to work with - we get no other context for your project.
Imagine this: you go for a drive in the country, but you have a problem with the car. You call the garage, say "it broke" and turn off your phone. How long will you be waiting before the garage arrives with the right bits and tools to fix the car given they don't know what make or model it is, who you are, what happened when it all went wrong, or even where you are?
That's what you've done here.
So, it's going to be up to you.
Start by looking at the error message carefully - it contains a lot of information which can help you. This should help you understand them:
How to Write Code to Solve a Problem, A Beginner's Guide Part 2: Syntax Errors[
^] - it';s primarily concerned with syntax errors, but the info and the process of understanding them is the same for runtime errors.
Then start looking for why the error is generated. Fortunately, you have a tool available to you which will help you find out what is going on: the debugger. If you don't know how to use it then a quick Google for "Visual Studio debugger" should give you the info you need.
Put a breakpoint on the first line in the function, and run your code through the debugger. Then look at your code, and at your data and work out what should happen manually. Then single step each line checking that what you expected to happen is exactly what did. When it isn't, that's when you have a problem, and you can back-track (or run it again and look more closely) to find out why.
Sorry, but we can't do that for you - time for you to learn a new (and very, very useful) skill: debugging!