- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有比这更快的方法来找到所有符合条件的人吗?
if (!String.IsNullOrEmpty(name) && !String.IsNullOrEmpty(lastname) && !String.IsNullOrEmpty(phone))
{
List<Person> newList = List.FindAll(s => s.Name == name && s.Surname == lastname && s.Phone == phone);
}
else if (!String.IsNullOrEmpty(name) && !String.IsNullOrEmpty(lastname))
{
List<Person> newList = List.FindAll(s => s.Name == name && s.Surname == lastname);
}
等等
最佳答案
您的版本可能是运行时最快 选项。 List<T>.FindAll
您创建的谓词是高效的,因为它进行的检查最少。
但是,您可以使用 LINQ 使代码更简单且更易于维护:
IEnumerable<Person> people = List; // Start with no filters
// Add filters - just chaining as needed
if (!string.IsNullOrWhitespace(name) && !string.IsNullOrWhitespace(lastname))
{
people = people.Where(s => s.Name == name && s.Surname == lastname);
if (!string.IsNullOrWhitespace(phone))
people = people.Where(s => s.Phone == phone);
}
//... Add as many as you want
List<Person> newList = people.ToList(); // Evaluate at the end
这将更易于维护,并且可能“足够快”,因为过滤通常不会在紧密循环中完成。
关于c# - List<>.FindAll 条件很少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553501/
我有 python 应用程序,它需要每天执行大约 20 000 次专有应用程序(不时崩溃)。 问题是当应用程序崩溃时,Windows 会自动触发 WerFault这将使程序挂起,因此 python's
我弄清楚这里的问题是什么。很少(50 个数据中有 3 个)插入到数据库中的数据不完整,如下所示: 用于插入的 PHP 代码是正确的。数据库中没有值的所有值都来自 SELECT 标记 HTML(year
我有一个包含对象的列表,其中包含以下字段:完整、不完整、继续。我想根据这三个部分对我的列表进行排序。首先,我想添加 header: INCOMPLETE 和所有元素(如果此字段为真)。之后我想添加标题
我们有一个名为模型的包 在模型中,我们有一个 TopicM 模块,它定义了一个类 Topic我们将它导入同一个包中名为 GeneralM 的模块中。有时(很少)我们会收到此错误: 可能是什么原因?会不
通过简单地将 TextViews 文本设置为在代码中定义的字符串(永远不能是 null)我有时会得到一个 ArrayIndexOutOfBoundsException,这只发生在我的实时应用程序中,我
我在 NodeJS 中运行一个 restify 服务器。在极少数情况下,大约 0.05% 的 HTTPS 请求会导致 net.js 报告以下错误: Error: accept EPERM at
我不明白,为什么Eclipse更新变得如此不可靠?大约每次使用它时,我都会遇到一些问题! 例如,现在我遇到下面一堆谵妄。禁用“联系所有软件站点”没有帮助。 An error occurred whil
为了呈现一堆节点,每帧一个,直到它们都出现在屏幕上,我想在 update() 调用中做这样的事情。 警告,伪代码接近: update(){ switch presentNodes_inOrderOfA
此 NSPersistentStoreCoordinator 没有持久存储。它无法执行保存操作。 NSInternalInconsistencyException(SIGABRT) This NSPe
我是一名优秀的程序员,十分优秀!