不循环地从列表中检索元素

0 c# list

我想在不使用 for 或 foreach 循环的情况下从我的列表中检索一个元素或它的列表,因为我的列表非常大,我还需要对结果进行另一个循环,因此从算法复杂性的角度来看,使用它不是一个好主意彼此内部的两个循环。

kri*_*mog 6

答案取决于确定您想要哪个元素的平均值。事实是,如果您有要查找的元素的索引,则 List 的复杂度为 O(1);否则它将始终具有 O(n) 复杂度(LINQ 与否)。

但是,如果您需要提取集合中的许多元素,然后对它们使用循环,LINQ 将使您能够轻松地仅使用一个循环(在集合的所有元素上)完成此操作:

foreach (var element in myCollection.Where(myCondition))
Run Code Online (Sandbox Code Playgroud)

如果你想找到比 O(n) 复杂度更小的元素,你应该查看HashSet<T>Dictionary<TKey, TValue>

但是您的问题不够准确,无法给您更具体的答案。