Prior to SQL Server 2005, you only had a few labor-intensive options if you wanted to order to pass a collection of values to a stored procedure from your .NET application.
If your data was an array of objects containing only single values, such as an array of strings, you could pass a delimited string to the stored procedure. Inside your procedure you would have to then parse the string and fill a temporary table with each piece of data.