gpt4 book ai didi

linq-to-objects - TakeWhile LINQ 方法未按预期给出结果

转载 作者:行者123 更新时间:2023-12-04 03:15:50 25 4
gpt4 key购买 nike

我期待包含“i”的字符串,但结果为空。能告诉我原因吗?

PetOwner[] petOwners = { new PetOwner { Name = "sen", Pets = new List { "puppy", "tiger"} }, new PetOwner { Name = "sugu", Pets = new List { "jimmy", "rose"}}
};

        var pets = petOwners.SelectMany(p => p.Pets);

var pets1 = pets.TakeWhile<string>(s => { Console.WriteLine(s); return s.Contains("i"); });

最佳答案

不要为此使用 TakeWhile - 它会在遇到表达式返回 false 的元素时立即终止循环。请改用 Where。也只需使用普通的 foreach 循环来执行输出,而不是将对 WriteLine 的调用放在 lambda 函数中。这使您更容易理解您的代码。

var petsContainingI = petOwners.SelectMany(p => p.Pets).Where(s => s.Contains("i"));
foreach (string s in petsContainingI)
{
Console.WriteLine(s);
}

关于linq-to-objects - TakeWhile LINQ 方法未按预期给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180650/

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