KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Background: I've got a bunch of strings that I'm getting from a database, and I want to return them. Traditionally, it would be something like this: public List<string> GetStuff(string connectionString) { List<string> categoryList = new List<string>(); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { string commandText = "GetStuff"; using (SqlCommand sqlCommand = new SqlCommand(commandText, sqlConnection)) { sqlCommand.CommandType = CommandType.StoredProcedure; sqlConnection.Open(); SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); while (sqlDataReader.Read()) { categoryList.Add(sqlDataReader["myImportantColumn"].ToString()); } } } return categoryList; } But then I figure the consumer is going to want to iterate through the items and doesn't care about much else, and I'd like to not box myself in to a List, per se, so if I return an IEnumerable everything is good/flexible. So I was thinking I could use a "yield return" type design to handle this...something like this: public IEnumerable<string> GetStuff(string connectionString) { using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { string commandText = "GetStuff"; using (SqlCommand sqlCommand = new SqlCommand(commandText, sqlConnection)) { sqlCommand.CommandType = CommandType.StoredProcedure; sqlConnection.Open(); SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); while (sqlDataReader.Read()) { yield return sqlDataReader["myImportantColumn"].ToString(); } } } } But now that I'm reading a bit more about yield (on sites like this...msdn didn't seem to mention this), it's apparently a lazy e
Tags (comma-separated)
Save Edits
Cancel