gpt4 book ai didi

linq - LINQ不是以List 开头

转载 作者:行者123 更新时间:2023-12-04 13:54:42 29 4
gpt4 key购买 nike

我有一个List ,其中有五个字符串:

abc
def
ghi
jkl
mno

我还有另一个字符串“pq”,我需要知道列表中的每个字符串是否都不以“pq”开头-我将如何使用LINQ(.NET 4.0)来做到这一点?

最佳答案

两个选项: Any All 。您应该使用哪一种取决于您发现更具可读性的内容:

var allNonPq = myList.All(x => !x.StartsWith("pq"));
var notAnyPq = !myList.Any(x => x.StartsWith("pq"));

这些在效率上实际上是等效的-两者一旦到达以“pq”开头的元素(如果存在)就将立即停止。

如果您发现自己做的很多,甚至可以编写自己的扩展方法:
public static bool None<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
return !source.Any(predicate);
}

在这一点上,您将拥有:
var nonePq = myList.None(x => x.StartsWith("pq"));

当然,您是否觉得比前两个更具可读性是个人喜好:)

关于linq - LINQ不是以List <string>开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903745/

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