C# 中的谓词有一些问题。我有两组代码(我认为这两组代码都应该完成相同的结果),但其中一组永远不会起作用。我问的原因是我需要这个谓词与不同的元素一起出现几次,所以我想尽可能地减少它(非工作的一个非常简单,而另一个包含很多行)。
1 不工作:
ItemViewModel item = (App.ViewModel.All_Items.Where(x => (x as ItemViewModel).Name == my_list_of_strings.ElementAt(2)) as ItemViewModel);
也使用“选择”而不是 Where 不起作用。
2 工作:
foreach (ItemViewModel it in App.ViewModel.All_Items)
{
if (item.Name == my_list_of_strings.ElementAt(2))
{
MessageBox.Show("Success!!");
item = it;
continue; // Leave loop
}
}
我可能忽略了一些愚蠢的事情,但如果有人知道解决方案,那就太好了!
谢谢。