查找C#列表中是否存在值的最有效方法

Aar*_*zel 15 c# list

在C#中如果我有一个bool类型的列表.确定列表是否包含真值的最快方法是什么?我不需要知道真正价值的数量或位置.我只需知道一个是否存在.我将搜索许多非常大的列表.

Tim*_*ter 20

只是用bool trueInList = list.Contains(true);.这会循环列表,直到有一个true.

为什么在这么简单的用例中你需要更快的东西?

  • 如果你有List,为什么要使用Linq :) (8认同)

tre*_*eze 9

使用list.Contains(true)或list.Any(true).对于正常列表,两者都具有复杂度O(n).由于Any()是一种扩展方法,需要调用委托,所以Contains()可能会更快一些.但是要确保我只是用大集合来测试它们.


use*_*727 5

你可以使用Any().

list.Any(b => b);
Run Code Online (Sandbox Code Playgroud)