C# 在文本框列表中按名称查找文本框

C# 在文本框列表中按名称查找文本框,c#,C#,给定一个RichTextBox列表,我想按其名称访问一个 例如: 编辑 我不应该在问题中使用循环。我正在尝试在没有for循环的情况下访问该名称 public RichTextBox boxFinder(List<RichTextBox> boxes) { return boxes.Find("boxname") } public RichTextBox boxFinder(列表框) { 返回框。查找(“boxname”) } Find是一个接受谓词(即返回bool的委托)的

给定一个
RichTextBox
列表,我想按其名称访问一个

例如:

编辑 我不应该在问题中使用循环。我正在尝试在没有
for
循环的情况下访问该名称

public RichTextBox boxFinder(List<RichTextBox> boxes)
{
    return boxes.Find("boxname")
}
public RichTextBox boxFinder(列表框)
{
返回框。查找(“boxname”)
}

Find是一个接受谓词(即返回bool的委托)的函数。您可以使用lambda调用find:

public RichTextBox boxFinder(List<RichTextBox> boxes)
{
    return boxes.Find(box=>box.Name == "boxname");
}
public RichTextBox boxFinder(列表框)
{
返回box.Find(box=>box.Name==“boxname”);
}

当然,用这样的函数包装它可能买不到多少钱。

最简单的方法是使用
FirstOrDefalut

return boxes.FirstOrDefault(b => b.Name == "MyName");

如果没有匹配的元素,
First
将抛出。请注意,这基本上是执行一个foreach,在引擎盖下发现一个元素后,该foreach会断开。

如果您将该
n
设为大写
n
。。。会发生什么?也许你可以详细说明你到底有什么问题?为什么你的东西不管用?你在问什么?除了大写字母外,你还有它。当然,您可以运行LINQ查询,但这只是幕后的一个foreach…请参见编辑。我想知道是否有一种方法可以使用list函数而不是loopvar mybox=box来查找它;(使用LINQ!)谢谢这是我一直在寻找的答案。我将把答案的
版本放在每个
版本上。你也会+1我吗:)@Rahul,这取决于答案的质量:)我相信会好的。不!!我只是在开玩笑。。。人们更喜欢
LINQ
answer。不管怎样,+1是另一种有效的方式。@GrantWinney我实际上也想到了同样的事情,我不得不去查一下,才发现不是这样的。我肯定会在我的代码中使用这个。