【发布时间】:2012-01-02 02:20:32
【问题描述】:
我有一个像这样的简单对象
public class Test
{
public string Name {get; set;}
}
后来我有List<Test> tests
然后我有一个方法可以处理列表中的Test 对象。
private void DoSomething(Test test)
{
//do some serious stuff here!
}
然后在应用程序中,这个Test 对象将被填充到 TreeView 中,并且在用户单击它们后,它们将被传递给上面的方法。目前我发现选择的树节点是这样的:
string name = selectedNode.Text;
foreach(Test test in tests)
{
if (test.Name = name) DoSomething(test);
}
所以我的想法是,我想不出一种在方法的参数中使用 LINQ 的方法,而不是做那个无聊的 foreach 循环。
this.DoSomething(from x in tests where x.Name = "What I need to pass" select x)
怎么了?
谢谢!
【问题讨论】:
-
我很确定你不能在方法中使用 LINQ 作为参数,就像你不能使用匿名类型一样。
-
即使我在参数中的linq之前强制转换(测试)?
-
对不起,我的意思是在 foreach 循环中:
if (test.Name = name) DoSomething(test); -
如果您只需要/期望 1 次测试,请致电
DoSomething((for ...).Single())