gpt4 book ai didi

c# - For 循环的返回值

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:37 26 4
gpt4 key购买 nike

我的应用程序中有一个 listView。我循环遍历项目以检查当前选择了哪一个,然后返回一个值。由于所有路径都必须返回一个值,因此我必须在循环外返回一个值,该值会覆盖 for 循环返回值,我该如何保留它而不在循环后覆盖它?

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";
}

非常感谢任何帮助。谢谢。

P.S 我曾尝试在 if 之后使用 break,但没有成功。

最佳答案

在编辑中:从上面删除我的评论。

这个你不用担心。一旦它在循环中遇到第一个 return,它就会立即返回那个值。在这种情况下,不会命中循环外的代码。

顺便说一下,这段代码会更简洁:

public string GetItemValue()
{
foreach (var item in listView1.Items)
{
if (item.Checked) return item.Text;
}
throw new InvalidOperationException("No checked items found");
}

异常是一种更惯用的错误处理方式,当您只是迭代集合时,foreach 循环优于 for 循环。

同样使用 LINQ,您可以变得更加简洁:

public string GetItemValue()
{
return listView1.Items.Cast<ListViewItem>().Single(i => i.Checked).Text;
}

关于c# - For 循环的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com