针对List <T>的快速LINQ查询

elr*_*anu 0 .net c# linq list

假设你有一个大的未分类 List<MyClass>

public class MyClass
{ 
   public Guid Id { get; set; }
   public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想使用LINQ搜索项目.有了这个简单的条款:where my.Id == id.您是否建议更快地获取查询?IComparable的?

编辑:我的意思是我使用普通的linq还是有更快的选择?例如编写自定义IComparable和binarysearch?

谢谢!

更新:我知道词典是具有唯一ID的最快选项.

Ree*_*sey 12

你可以使用LINQ的FirstOrDefault:

 MyClass firstMatch = theList.FirstOrDefault(my => my.Id == id);
Run Code Online (Sandbox Code Playgroud)

如果不对列表进行排序,这可能是最好的选择,即使它仍然是O(N).