过滤时我似乎得到了不同的结果.我希望这两段代码得到相同的结果:
Sitecore.Data.Items.Item firstGuess = Sitecore.Context.Database.GetItem(mediaPath);
var matches = new List<Item>();
//Method A
foreach (var child in firstGuess.Parent.Children.InnerChildren)
{
if (child.DisplayName == firstGuess.DisplayName)
{
matches.Add(child);
}
}
//Matches.count = 2
//Method B
var matches2 = firstGuess.Parent.Children.InnerChildren.Where(i => i.DisplayName == firstGuess.DisplayName);
//matches2.any = false
Run Code Online (Sandbox Code Playgroud)
我想找到与我同名的物品firstGuess.
方法A按预期工作,而B似乎给我一个奇怪的结果是!matches2.any()返回false,当我希望true.
用.Where和测试.Select
为什么这些看似相同的方法会给我不同的结果?