I have a listView in my app. I loop through the items to check which one is currently selected and then return a value. As all paths have to return a value I have to return a value outside the loop which overwrites the for loop return, how do I keep this without overwriting it after the loop?
public string GetItemValue()
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Checked == true)
{
return listView1.Items[i].Text; // I want to keep this value
}
}
// Without overwriting it with this but the compiler
// requires me to return a value here
return "Error";
}
Any help is most appreciated. Thanks.
P.S I have tried using break after the if but no luck.
On edit: bringing down my comment from above.
You don’t need to worry about this. As soon as it hits the first
returninside the loop, it will return immediately with that value. No code outside the loop is ever hit in that case.Incidentally, this code would be cleaner:
Exceptions are a more idiomatic way of handling errors, and the
foreachloop is preferred to aforloop when you’re just iterating over collections.Also using LINQ, you can get even more concise: